マイクロサービス通信のための Proto ファイルの管理
マイクロサービス間の効率的な通信のために Proto ファイルを維持するには、慎重な調整が必要です。 proto ファイルを作成し、他のファイルから git リポジトリに分離したと仮定すると、課題は、proto ファイルに加えられた変更が、それに依存するすべてのマイクロサービス間で確実に同期されるようにすることです。
解決策:
この問題に対処するには、次の手順に従います。
-
Proto リポジトリを一元化する:
proto ファイルとそれに付随する go 生成メイクファイルを保存します。単一の Git リポジトリ内にあります。簡単にインポートできるように、各定義を独自のディレクトリに整理します。
-
リポジトリにバージョンをタグ付けする:
特に重大な変更を行う可能性がある場合は、リポジトリにバージョン番号をタグ付けします。これは、使用されているプロトの特定のバージョンを識別するのに役立ちます。
-
特定のプロト定義のインポート:
マイクロサービス内で、「github.com/me/myproto/」形式を使用して特定のプロト定義をインポートします。プロトデフ2」。これにより、各マイクロサービスが正しいバージョンを参照するようになります。
-
Go モジュールの利用:
依存関係のバージョンを管理するために Go モジュール (Go v1.11 で導入) を実装します。これにより、マイクロサービス X は互換性のあるバージョンの proto defs Y を確実に取得できます。
互換性の問題の回避:
下位互換性を維持するには、次のガイドラインに従ってください。
-
フィールドの削除を最小限に抑える:
プロト定義からフィールドを削除しないようにします。
-
フィールド インデックスを維持する:
フィールドを保持するインデックスに一貫性があるため、古いクライアント呼び出しと新しいプロト定義との互換性が維持されます。
以上がマイクロサービス通信用の Proto ファイルを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。