は、次のことを想像してみて:Microservice通信
- あなたがチームとプレイヤーそれぞれ独自の、分離データベース(postgresの)との1と呼ばれる2つのmicroservicesを持っています。
- 私はチームとプレーヤーとの関連付けをする必要があるので、この関係をチームID属性のプレーヤーに保存する必要があります。
私は2つのオプションがあります。
1)カフカを使用して、私はイベントやプレーヤーを送るデータベースに挿入されたすべてのチームのためには、このイベントに耳を傾け、プレイヤーmicroservice内で独自のチームのテーブルを更新します。したがって、プレーヤーのマイクロサービスは、チームとプレーヤーの関係を作るためにチームとプレーヤーのエンティティについての情報を持っています。
ここでは、データの複製と整合性についていくつかの欠点があります。イベントソースとcqrsを使用して回避することができます。
2)マイクロサービスチームに電話をしてチームを表示し、関連付けを行い、プレーヤーのマイクロサービスに投稿します。
欠点:チームサービスがダウンしている可能性があります。
マイクロサービス間で通信して依存関係をアーカイブし、マイクロサービス間の関連性を取る正しいアプローチは何ですか?ステップ1で複製されたデータは合理的ですか?
代わりに1つ以上のオプションがありますか?このような関係を築くのがベストですか? – gustavomr