2016-12-26 8 views
0

プロジェクトの設定では、FlaskとnamkoとRabbitMQを使用しています。私たちはこれを複数のプロジェクト(2ヶ月前に開始しました)に使用しており、開発時にサービス名の問題があります。私たちは一つのユーザのサービスではありません、同じマシン上でのプロジェクトの両方を実行する必要がある場合にPython Nameko複数のプロジェクト(開発)

class UserService: 
    name = 'user_service' 
    ... 

問題がある:AとBを、それらの両方は、(異なる機能付き)UserServiceのを持っている -

は、我々は2つのプロジェクトを持っていますワーキング。正確に言えば、両方とも動作していますが、すべてのリクエストはそのうちの1つによって処理され、構造が異なるのでエラーが発生します。

最初のアイデアは、サービス名にA_user_serviceのようなものを、プロジェクトのプレフィックスを追加することでしたが、それは本当に醜いソリューション(rpc部分に、我々はその後、rpc.A_user_serviceのようなものを呼び出す必要があり、それはひどいです)です。 namekoプロジェクトのための名前空間はありますか? config内のrpc_excangeパラメータをプロジェクトごとに異なるように設定しようとしましたが、これは私たちの問題を解決するものではありません。

答えて

1

私はそれが「プロジェクト」をどのように定義するかによって決まると思います。サービス名はメインネームスペースです。したがって、これら2つのユーザーサービスが共存する可能性がある場合は、異なる(おそらくより特定の)サービス名を使用する必要があります。

完全に別々の場合(2人の別個のクライアント用に開発された場合)、個別のrabbitmq vhostを使用して問題を解決できますか?そうすれば、サービスの2つの別々の "クラスタ"が稼働することになります。仮想ホストでは何も見ることができず、仮想ホストでは何も話すことはできません(もちろん、両方ともサービスxのインスタンスを実行できます。

+0

これは受け入れられる解決策ですが、namekoの設定でこれを行う方法があるかどうかを知る必要があります。私がそのようにすることができなければ、私はこの答えを受け入れるでしょう。 – PerunSS

+0

多分私は誤解しているかもしれませんが、 'vhost'は' AMQP_URI'によってネームコ構成の一部です。 – second

+0

はい、私の悪いです。 RabbitMQの仮想ホストは問題を確実に解決します。ありがとう。 – PerunSS

関連する問題