5章マイクロサービスの通信の実装

4章で説明したように、技術選択は、必要な通信スタイルに大きく依存するはずです。同期ブロッキング呼び出しか非同期非ブロッキング呼び出しか、リクエスト/レスポンス連携かイベント駆動連携かを決めることで、本来なら膨大になる技術の候補を絞り込むことができます。本章では、マイクロサービスの通信でよく使われる技術を紹介します。

5.1 理想的な技術の探索

あるマイクロサービスが別のマイクロサービスと対話する方法には、困惑するほど数多くの選択肢があります。しかし、どれが適切ですか。SOAPですか、XML-RPCですか、RESTですか、gRPCですか。そこで、特定の技術を詳しく説明する前に、選択した技術によって何が得られるのかを考えてみましょう。

5.1.1 後方互換性を容易にする

あるマイクロサービスを変更する際、そのマイクロサービスを利用するマイクロサービスとの互換性を壊さないようにする必要があります。そのため、どのような技術を選んでも、後方互換性のある変更を容易に行えるようにしたいのです。新規フィールド追加のような単純な操作のせいで、クライアントが壊れるようなことがあってはなりません。また、行った変更に後方互換性があることを検証する機能や、マイクロサービスを本番環境にデプロイする前にフィードバックを得る方法があれば、理想的です。

5.1.2 インタフェースを明示的にする

マイクロサービスが外界に公開するインタフェースは、明示的であることが重要です。これは、あるマイクロサービスのコンシューマにとって、そのマイクロサービスが公開する機能が明確であることを意味します。また、そのマイクロサービスに取り組む開発者にとって、どの機能が外部の関係者にとって不変である必要があるかが明確であることも意味します。マイクロサービスの変更によって、偶発的に互換性が損なわれるような状況を、避けたいのです。 ...

Get マイクロサービスアーキテクチャ 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.