2016-12-08 3 views
0

私はドッカーに移動したRailsアプリケーションを持っています。このプロセスにより、私はアプリケーションを2つのマイクロサービス:メインアプリとアドレス確認マイクロサービスに分割する必要がありました。私は主なアプリケーションが呼び出す別のRailsアプリケーションにアドレス検証マイクロサービスをカプセル化しました。それはrest-clientを使用し、応答を受信するまでブロックします。マイクロサービスがドッカーで互いに話す方法

リクエストは300msで処理されていました。今、彼らは1.3秒かかる。 newrelicのデータを見た後、大部分の時間は、主なRailsアプリケーションがアドレス検証Railsアプリケーションを呼び出すのに費やされているようです。マイクロサービスがコンテナ間で通信する方法はありますか?私の質問はRuby/Rails特有のものだと思います。私はRabbitMQを調べるべきですか?問題は、フローの早い段階で検証済みのアドレスが必要なため、アドレス検証マイクロサービスRailsアプリケーションへの非同期要求が私に買われるまでにどのくらいの時間がかかるか分かりません。

newrelic data

+0

microservice/dockerに移行する前に、どのように住所確認サービスに電話しましたか?サービスはかなり変わったのですか?同時実行性の問題でない限り、ローカルWebサービスを呼び出すと時間がかかることは奇妙に思えます。 typheousまたはem-http-requestで非ブロッキングリクエストを試行できます – Matt

+0

アドレス確認は内部コールでした。私はこれらのクラスを取り、それらを新しいRailsアプリケーションに移しました。 –

答えて

0

これは、アドレス検証microserviceが問題を抱えていたことが判明。私はアドレスの検証を念頭に置いていました。ユーザーの検索/更新操作には多くの時間がかかりました。私はまだ彼らがなぜそんなに長い時間を取っていたのか分からないが、すぐに私がそれらを無効にすると、まともな数字に戻った。私は、何が起こっているのかを発見する必要があります。それは私が内部呼び出しで持っていたものではありませんが、ドッカーの&マイクロサービスはそれほど恐ろしいことではありません。

関連する問題