2017-12-02 12 views
0

への通信方法REST Microserviceは、ハイブリッドである別のMicroserviceと通信することができます。つまり、RESTとMessage Queueと通信できます。 APIゲートウェイの例。外の世界では、彼はREST経由でApp、Mobilephoneと通信することができますが、バックエンドからの通信はメッセージキュー経由です。RESTからメッセージキュー

使用例:

私のホームページはデータベースから車両を取得したいと考えています。彼はGET-Requestを介してAPI-Gatewayに尋ねる。 API-GatewayはGET要求を受け取り、それをメッセージキューにパブリッシュします。他のMicroserviceはメッセージを受け取り、結果をパブリッシュします。その後、APIゲートウェイは結果を消費し、それを応答として返します。

どうすれば実装できますか? Apache KafkaでSpringブートを使用していますか?私は非同期通信を実装する必要がありますか?

(申し訳ありませんが、そのドイツ) enter image description here

+0

私はあなたの残りのコントローラで非同期応答/タイムアウトを待つべきだと思います。 –

答えて

1

この状況を解決するためにいくつかのアプローチがあります。

クライアントリクエストごとにトピックを作成し、反対側の回答を待つことができます。たとえば、DriverServiceはリクエストメッセージを読み取り、すべてのデータを取得してクライアントリクエストトピックに公開します。応答メッセージを消費すると、そのトピックは破棄されます。

ただし、リクエストとレスポンスのやりとりで「一時的な」トピックが削除されるには時間がかかりすぎることがあります(削除が不要な設定(delete.topic.enableプロパティなど)がない場合)。

Websocketも可能です。あなたのクライアントは、前もってあなたのサーバーと合意した特定のトピックを聞き始め、特定のタイムアウトでDriverServiceがその特定のソケットチャンネルに公開するときに、応答を待つでしょう。

春のブートは、カフカとウェブソケットのための素晴らしいスタートを提供します。大量のトランザクションを期待している場合は、私はバックエンドの規模を支援し、すべてのトランザクションを処理するためにKafkaを使用する混合戦略に進み、Websocketを介してクライアントに応答します。

関連する問題