過去に、Hazelcastキューをバスとして使用するSOAシステムを構築しました。ここにいくつかの見出しがあります。
a。各サービスには収入Qがあります。単にサービス名はキューの名前です。必要な数のサービスプロバイダーを持つことができます。スケールアップとスケールダウンができます。必要なのは、これらのサービスプロバイダーがこのキューをポーリングし、到着した要求を処理することだけです。
b。システムは完全に非同期であるため、要求と応答を相互に関連付けるために、要求と応答の両方に呼び出しIDもあります。
c。各クライアントは、呼び出したいサービスのキューにリクエストを送信します。リクエストには、サービスのすべてのパラメータ、レスポンスを送信するキューの名前、および呼び出しIDが含まれています。キュー名は、単にクライアントのアドレスにすることができます。このようにして、各クライアントは独自のキューを持ちます。
d。要求を受信すると、サービスプロバイダーはそれを処理し、応答を応答キューに送信します
e。また、各クライアントは入力キューを継続的にポーリングして、送信する要求に対する回答を受け取ります。
この設計の主な欠点は、キューがマップほどスケーラブルではないことです。したがって、それはあまりスケーラブルではありません。ただし、1秒あたり5Kのリクエストを処理できます。