マイクロサービスアーキテクチャでは、プロトファイルの集中コレクションを持ち、それをクライアントとサーバーの依存関係として使用することをお勧めしますか?クライアントとサーバーごとに1つのprotoファイルしか持たないのですか?Grpcマイクロサービスアーキテクチャインプリメンテーション
答えて
組織がモノリシックコードベースを使用している場合(つまり、すべてのコードが1つのリポジトリに格納されている場合)、同じファイルを使用することを強くお勧めします。代わりにファイルをコピーするだけですが、すべてのバージョンを同期させておく必要があります。
送信者と受信者の間でプロトコルバッファファイルを共有する場合は、特に、新しいマイクロサービスが静的に型指定された言語)。
一方、モノリシックコードベースを持たず、代わりに複数のリポジトリ(マイクロサービスごとに1つ)がある場合は、プロトコルバッファファイルを共有する方が面倒です。あなたができることは、それを必要とするマイクロサービスへの依存として追加できる別々のリポジトリにそれらを入れることです。それが私の以前の会社で見たものです。スキーマ用に複数の小さなAPIリポジトリがありました。
同じファイルを使用するのが簡単な場合は、コピーを作成する代わりにコピーすることをお勧めします。ただし、コピーする方が現実的な場合があります。欠点は、すべてのコピーで常に変更を適用する必要があることです。最良の場合は、更新するファイルを知っているだけで面倒です。最悪の場合、更新するファイルがわからず、スキーマが同期しなくなります。コードがリリースされた場合にのみ、あなたは知ることができます。
モノリシックコードベースは、モノリシックアーキテクチャを意味するものではありません。マイクロサービスを持ち、すべてのソースコードを1つのリポジトリにまとめることができます。有名な例はもちろん、Googleです。 Googleはまた、内部通信にプロトコルバッファを頻繁に使用しています。彼らのソースコードは見ていませんが、プロトコルバッファファイルをサービス間で共有しないと驚いています。
- 1. GRPC C++
- 2. GRPCサービスディスカバリー
- 3. 春ブーツ+ GRPC Http2Exception
- 4. grpcのゼロコピーバイトC++
- 5. GRPCロードバランサの例
- 6. grpc protoファイルパーサー
- 7. GRPC:クライアントサイドのタイムアウト
- 8. gRPC + SSL = UnsatisfiedLinkError
- 9. gRPCビルドエラーのクラウドファイアストア
- 10. gRPCコアアップルマッハOリンカエラー
- 11. GRPCストリーミングセレクト(Python)
- 12. SBT protobuf grpc configuration
- 13. gRPC on Reactネイティブ
- 14. Javaのgrpcランタイムエラー
- 15. ゴランgRPCサーバーストリーム
- 16. gRPCストリーミングのエラータイプ
- 17. テンソルフローgrpcクライアントエラー12
- 18. gRPC - GoLang - Stackdriver tracer
- 19. Java + GRPC、ダミー用?
- 20. gRPCサービスのテスト
- 21. gRPCプッシュとファンアウト
- 22. は私がgRPC
- 23. Androidのgrpcサーバー
- 24. gRPCサーバーのエラーハンドラーgolang
- 25. gRPC C#サーバー認証
- 26. クライアント側のgRPCコンテキスト
- 27. gRPCのページ分割
- 28. Google-cloud + Node、grpcエラー
- 29. GRPCサービスの継承
- 30. Grpc - grpcサービスメソッドに異なるオブジェクトを渡す