2017-12-17 13 views
1

2つのマイクロサービス間でドメインモデルを共有する方法に関するベストプラクティスまたはガイドラインはありますか?2つのマイクロサービス間でドメインモデルを共有するベストプラクティス

私は、すべてのCRUDリソースとリソース上で特定の非CRUDタスクを実行する他のマイクロサービス(2)とリソース(注文)と相互作用するエンドポイントを提供するマイクロサービス(1)を持っています)。マイクロサービス(2)は、その操作を実行するためにすべての注文属性をほとんど必要とする。この場合、ドメインモデルの共通の共有ライブラリを作成し、2つのサービス間で共有することは理にかなっていますか?私は技術的に1と2を組み合わせることができましたが、マイクロサービス(2)はメモリとCPUをかなり消費するため、スケーラビリティをサポートする必要があります。

+0

ドメインモデルレイヤーのようなものが必要です – Marusyk

+0

@MegaTronドメインモデルレイヤーの意味を少し詳しく教えてください。 – user320587

+0

共通の共有ライブラリを作成すると、深刻な影響を及ぼす可能性があります。別のサービスを作成することを検討する必要があります。 –

答えて

0

は、私の知る限り見ることができるように、これら2つのサービスが同じデータを共有する必要があり、また、読み取り/このデータを変更するために使用されるライブラリを共有することを考えているようです。

彼らは同じ「有界コンテキスト」に属しているように見えるので、ユニークなサービスとして、それらを考慮することが理想的です。

あなたが本当に自分のデータとそのロジックを分離できない場合は、それらをまとめておく方が良いでしょう。

同じマイクロサービス内のコンポーネントは、同じマイクロサービスであり、同じチームによって管理され、常に一緒に展開され、同じソースリポジトリを共有しますが、展開されます第2のコンポーネントだけが高いスケーラビリティを必要とするため、異なるストラテジを使用します。

同じバインドされたコンテキスト、同じサービスですが、異なるコンポーネントです。

私は多くの経験を持っているので、私の個人的な考えとしてこれを取ることはありません。

+1

共有ライブラリは、サービス間のシリアライズ/デシリアライズのためのデータ構造を共有するために主に使用される単なるPOJOの束です。私が考えているようなサウンドは、アンチパターンではありません。 – user320587

関連する問題