分散マイクロサービス環境での Proto ファイルの保守
マイクロサービス アーキテクチャでは、複数のリポジトリ間で Proto ファイルを保守することが課題となる場合があります。この記事では、proto ファイルの同期を維持し、サービス間の互換性を確保するためのソリューションを提案します。
ソリューション:
-
集中型 Proto リポジトリ: ストアproto ファイルとその生成された Makefile は単一の Git リポジトリにあります。インポートを容易にするために、各定義は独自のディレクトリに存在する必要があります。
-
バージョン管理: 特に重大な変更の可能性がある場合は、リポジトリにバージョンのタグを付けます。これにより、特定の安定したバージョンを参照できます。
-
モジュールベースのインポート: マイクロサービスでは、モジュール パス (例: "github.com/me/myproto/) を使用してプロト定義をインポートします。 protodef2")。これにより、マイクロサービスが Git リポジトリから適切なバージョンを自動的に取得できるようになります。
-
Go モジュール: Go モジュールを使用して依存関係を管理し、互換性を確保します。マイクロサービスがテスト (例: go test) を通過すると、プロトファイルのハッシュが集中リポジトリ内のハッシュと一致するかどうかが検証されます。不一致が発生した場合、開発者はコード生成を更新するように求められます。
追加の考慮事項:
-
下位互換性: 可能な限り、下位互換性を壊すことは避けてください。残りのフィールド インデックスが変更されない限り、フィールドの削除は許容されます。
-
コード生成: プロト ファイルの変更に基づいてコード生成がトリガーされ、すべてのマイクロサービスが同じバージョンで更新されることを確認します。 .
-
モノレポと複数のリポジトリ: プロジェクトの構造に応じて、プロト メンテナンスにはモノレポまたは複数のリポジトリを検討できます。
以上が分散マイクロサービス アーキテクチャで Proto ファイルを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。