マイクロサービスについて知り始めたばかりですが、自分では答えられないという質問があります。私はこのような状況があるマイクロサービスアーキテクチャのHTTPと倹約
(と私はまた、Javaベースの開発者です):
私が取得データのためのスリフトサービス(名前付きT1)を呼び出し、サービスA(APIサービス)を持っています。
次に、Aからのデータ応答を使用してこれらのデータを解析し、新しいデータを生成して最終的にクライアントに返すサービスBがあります。
質問:私はどちらを使うべきですか? BからAのAPIを呼び出し、HttpClient/AsyncHttpClient(接続プールまたはBダイレクトコールT1)を使用して解析します(たとえばJSONデータ)。
IMHO、私はスリップ(接続プーリングも)がHTTPコールより高速だと思いますか?私は正しい? 1は、私が使用する必要がありますので、
私は等の弾性検索、のNeo4j、ユーレカネットフリックス、などの内部のためにHTTPを使用するサービスの多くを参照してください...
、?なぜ、HTTPはThrift、ProtoBufなどのRPCの代わりに内部使用に普及しているのですか?
私の悪い英語のために申し訳ありません。 ありがとうございます。
「HTTPとJSONまたはXMLは、プラットフォームと言語に依存しないため一般的に使用されます」。これに全面的に同意する。しかし、私は、Thrift/Protobufはタイプセーフであることを前提としています。これは、JSONやXMLが助けにならないことです。 内部サービスについては、Thirft/Protobulはミドルウェアに適していると思います(たとえば、RESTfulサービスとデータベース間の通信 - Redis、Memcacheなどのキャッシュサービスを使用しないと... - またはIDの集中カウンタカウンター) もう一つの愚かな質問ですが、これらのセキュリティリスクはどうですか? –
クライアントとサーバーの間でテキスト交換フォーマットを使用するのは簡単ではありません(ただしXMLは本当に難しいですが)。しかし、タイプの情報は、クライアント/サーバの障壁を越えて共有するのが難しいです。古典的な質問は、 'thisA'というタイプの 'thingA'が重要であるという(サーバ)概念です。私のクライアントがそのタイプの実装言語を持つことは意味がないかもしれませんし、特定のクライアントがサーバと同じタイプのインバリアントを持つことも賢明ではないかもしれません。 – sisyphus