チャティネス (対話頻度) - AWS でのマイクロサービスの実装

チャティネス (対話頻度)

モノリシックなアプリケーションを小さなマイクロサービスに分割すると、マイクロサービス同士でやりとりする必要が生じるため、通信オーバーヘッドが増加します。多くの実装で、通信プロトコルとして REST over HTTP を使用しています。このプロトコルは軽量であるためですが、メッセージの量が多いと問題が発生する可能性があります。場合によっては、大量のメッセージを送受信するサービスを統合することを検討できます。チャティネス (対話頻度) を削減するためだけにますます多くのサービスを統合するような状況になった場合は、問題ドメインとドメインモデルを見直す必要があります。

プロトコル

このホワイトペーパーの前半にある「非同期通信と軽量メッセージング」セクションで、さまざまなプロトコルの可能性について説明しています。マイクロサービスでは、HTTP などの単純なプロトコルを使用することが一般的です。サービスによって交換されるメッセージは、JSON や YAML といった人が読み取り可能な形式、または Avro やプロトコルバッファなどの効率的なバイナリ形式など、さまざまな方法でエンコードできます。

キャッシュ

キャッシュは、マイクロサービスアーキテクチャのレイテンシーとチャティネス (対話頻度) の低減に最適です。実際のユースケースとボトルネックに応じて、いくつかのキャッシュレイヤーを使用できます。AWS で実行されている多くのマイクロサービスアプリケーションは、ElastiCache を使用して結果をローカルにキャッシュすることで、他のマイクロサービスへの呼び出し回数を削減しています。API Gateway では、組み込みのキャッシュレイヤーによってバックエンドサーバーの負荷を軽減します。さらに、キャッシュはデータ永続レイヤーからの負荷軽減にも役立ちます。すべてのキャッシュメカニズムに伴う課題は、良好なキャッシュヒット率と、データの適時性/整合性の適正なバランスを見つけることにあります。