2

私はいくつかの外部サービスを使用するマイクロサービスをいくつか構築しました。これらの外部サービスは、私が構築した1つ以上のマイクロサービスによって消費されることはほとんどありません。私はこれらのマイクロサービスへのコネクタをライブラリプロジェクトとして構築し、それを私のすべてのマイクロサービスプロジェクトに依存として含めました。しかし、私は、マイクロサービスのためのすべてのロジックは自己完結型でなければならず、ロジックの重複は大丈夫だと読んでいます。その場合、共有ライブラリを持たずに各マイクロサービスごとにこれらのコネクタを定義することをお勧めしますか?マイクロサービスへの依存性の追加

+1

"マイクロサービス用のすべてのロジックは自己完結型で、ロジックの複製はOK" – dnault

+0

@dnault - how about https://www.infoq.com/news/2015/01/microservices-sharing-code 。私はあなたの感情に同意します、しかし、それは上記の声明の支持者を見つけることはかなり簡単でした... –

答えて

1

... microservicesためのすべてのロジックは、自己完結型とロジックの 重複する必要がありますokです

私は、これはあなたが苦労している問題の核心だと思います。このステートメントは実際には真実ですか?後で

迅速なGoogle検索:私たちは今、microserviceアーキテクチャにおける再利用の適切なレベルがどのようなものですとしてフレームすることができ、この正確な質問、およそ http://www.simplicityitself.io/our%20team/2015/01/12/sharing-code-between-microservices.html

この記事の話?

著者はカップリング及びアイソレーションの損失の面で最高に最低から注文の開発者がコードを共有する必要性を感じる理由のリストを、提供:技術的機能

  • を既存の

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

    このリストは、理由のほとんどをカバーしていますが、私は一般的にMicroservice Chassisパターンと呼ばmicroservicesの急速なスタンディングアップのための共通の枠組み、と関係しているコードを共有する別の重要な理由を、追加します。

    著者は言うに行く:

    それは 共有コードに望むためにあなたのモチベーションを突き止めるために最も重要であるが、残念ながらこの 質問に対する正しい答えはありません。他のすべてのものと同様に、それは文脈的です。

    だから、あなたはあなたのコネクタを集中化するべきかどうか、そうではありませんか?

    まあ、これらの依存関係はどこに当てはまりますか?そして、あなたはもはやマイクロサービスをやっていないが、代わりにモノリスを構築する前に、どの程度のカップリングを耐えることができますか?

    これは簡単な質問ではありませんが、正しい結論に導くのに役立ちます。

  • +0

    ありがとう、トム。はい、私はそれを考える必要があります。今のところ、私はライブラリを使ってコネクタのデータスキームを共有するのが最良のアプローチだと思っています。しかし、私はそれを考えなければならないと思います。 –

    関連する問題