2016-12-07 18 views
6

Amazonは、マイクロサービスベースのアーキテクチャにHTTPを使用していると聞いています。代わりに、RabbitMQやSolaceシステムのようなメッセージングシステムを使用することもできます。私はSolaceベースのマイクロサービスアーキテクチャーを個人的に経験しましたが、RESTを使用したことはありません。
Amazon、Netflix、UK Govなどのさまざまなビッグリーグの実装は何ですか?
他の側面、microservicesでは、次のようなものが(他の人のほかに)必要とされている。
*非同期メッセージングを一致
*柄...受信システムがダウン
*すなわち..に
*キャッシュ・ロード・イベントをサブスクライブ公開することがありサービスが2つの他のサービスからすべてのデータをロードする必要があり、データが完全にロードされたときに通知して、要求を処理できる状態にあることを「知る」ことができるようにします
これらの特徴は自然ですRESTではなくメッセージングで行われます。なぜ誰かがRESTを使うべきです(パブリックAPIを除く)。ありがとう。マイクロサービス:RESTとメッセージング

+0

HTTP、RESTは仕様である。 RabbitMQ/Solaceはメッセージブローカーです。あなたの質問は、 "HTTP/RESTに基づいたサービスのアプリケーションは何ですか?" – k1133

+0

hmm RESTを使用し、メッセージングを使用する必要がある場合や、組み合わせを使用するケースを考えてみましょう。 –

答えて

9

私がこれまで従ってきた標準は、重要な要件が信頼性である場合の速度とデータ損失が重要でない場合にWebサービスを使用し、メッセージングを行うことです。あなたが言ったように、受信側のシステムがダウンしている場合、メッセージが処理されるまで、メッセージがキューに置かれます。それがRESTエンドポイントでダウンしている場合、要求は単に失敗します。

+4

+1なぜ同期通信(REST)の結合の影響が考えられますか?ifすべての扶養家族が失敗するので、データを失うだけでなく、システム全体をダウンさせる連鎖反応を引き起こす可能性があります。 –

+0

@SeanFarmarこれは私がDomino Effectと呼ぶものです。関連する問題はリップル効果であり、あるサービスの変更によって下流のサービスの変更が必要になる可能性があります。 – MattDavey

-2

REST APIはHTTPのみの使用を前提としています。それはかなり古い時代の技術であり、非同期を受け入れません。メッセージング。そこにメッセージをプラグインするために、私はWebSockets Gatewaysを検討するだろう - 最終的にはダミーステートメントのために残念。

関連する問題