web-dev-qa-db-ja.com

マイクロサービス:REST vs Messaging

AmazonはマイクロサービスベースのアーキテクチャにHTTPを使用していると聞きました。別の方法は、RabbitMQやSolaceシステムなどのメッセージングシステムを使用することです。個人的にはSolaceベースのマイクロサービスアーキテクチャの経験がありますが、RESTの経験はありません。
Amazon、Netflix、UK Govなど、さまざまな大リーグの実装で何が使われているのでしょうか。
他の側面は、マイクロサービスでは、次のものが必要です(他に加えて):
*パターンマッチング
*非同期メッセージング..受信システムがダウンしている可能性があります
*購読を公開
*キャッシュロードイベント。つまり、起動時に、サービスは他のいくつかのサービスからすべてのデータをロードする必要があり、データが完全にロードされたときに通知される必要があるため、リクエストを処理する準備ができました
これらの側面は、RESTではなくメッセージングで自然に行われます。なぜ誰もREST(パブリックAPIを除く)を使用する必要があります。ありがとう。

19
Apurva Singh

私が過去に従った標準は、重要な要件が速度である場合(およびデータ損失は重要ではない場合)はWebサービスを使用し、重要な要件が信頼性である場合はメッセージングを使用することです。あなたが言ったように、受信側のシステムがダウンしている場合、システムが戻って処理するまでメッセージはキューに残ります。 REST=エンドポイントでダウンしている場合、リクエストは失敗します。

20
Riaan Nel