3

多数の外部サービスを使用するマイクロサービスをいくつか構築しました。これらの外部サービスのほとんどは、私が構築した複数のマイクロサービスによって消費されます。これらのマイクロサービスへのコネクタをライブラリ プロジェクトとして構築し、すべてのマイクロサービス プロジェクトに依存関係として含めました。ただし、マイクロサービスのすべてのロジックは自己完結型である必要があり、ロジックの複製は問題ないと読みました。その場合、共有ライブラリを使用する代わりに、すべてのマイクロサービス内でこれらのコネクタを定義することをお勧めしますか?

4

1 に答える 1

3

...マイクロサービスのすべてのロジックは自己完結型である必要があり、ロジックの重複は問題ありません

これがあなたが苦労している問題の核心だと思います。この声明は実際に真実ですか?

後で簡単な Google 検索: http://www.simplicityitself.io/our%20team/2015/01/12/sharing-code-between-microservices.html

この記事では、この正確な質問について説明します。これは、「マイクロサービス アーキテクチャでの再利用の適切なレベルはどのレベルですか?」と考えることができます。

著者は、開発者がコードを共有する必要性を感じる理由のリストを提供します。結合と分離の喪失に関して、低いものから高いものへと並べられています。

  • 既存の技術機能を活用
  • たとえば、共有スキーマの実施として、クラスを使用してデータ スキーマを共有します。
  • データ ソースの共有、複数のサービスによる同じデータベースの使用。

このリストはほとんどの理由をカバーしていますが、コードを共有するもう 1 つの重要な理由を追加します。これは、一般にマイクロサービスシャーシパターンと呼ばれる、マイクロサービスを迅速に立ち上げるための共通フレームワークに関係しています。

著者は続けて次のように述べています。

残念ながら、この質問に対する正しい答えはないため、コードを共有したい動機を突き止めることが最も重要です。他のすべてと同様に、それは文脈に依存します。

以上のことから、コネクタを集中化する必要があるかどうかはわかりません。

さて、これらの依存関係はリストのどこに当てはまりますか? また、マイクロサービスをやめてモノリスを構築する前に、どの程度のカップリングに耐えられるでしょうか?

これらの質問に答えるのは簡単ではありませんが、これが正しい結論に導くのに役立つことを願っています.

于 2016-07-21T10:31:46.637 に答える