マイクロサービスに関するアーキテクチャ上の質問があります。私たちは2つの異なるデータソースを持っています(2つのテーブルにはいくつかの類似フィールドがありますが、それらの間には接続はありません)。私たちはこれらのデータだけを読みたいと思っています。これらのソースごとにマイクロサービス(モデルオブジェクトに沿って)を作成するのがよい方法ですか、それともデータを処理する汎用サービスを持つ汎用モデルを作成するのに十分ですか?データ型ごとのマイクロサービス
答えて
正解はプロジェクト/製品とニーズによって異なります。
マイクロサービスはビジネス機能の周りに配置されています。これにより、開発者がそれを消費するのを助けるサービスコンテキストが得られます。汎用サービスにはこのコンテキストがありません。
たとえば、わかりやすいために、従業員情報を持つ顧客情報を持つテーブルが2つあるとします。私たちはテーブルからのみ読んでいます。
マイクロサービスアーキテクチャーは、読み取り操作と読み取り操作の2つのサービスを提供します。
したがって、開発者はcustomer.listAll()とemployee.listAll()などを呼び出します。しかし、文脈は明確です。
汎用サービスを使用すると、次のコードが返されることがあります。 service.listAll(customers)。パラメータはコンテキストを運ぶようになりました。大量の異なるタイプ/テーブルを持つシステムでは、これは電話をかける大きな手間になることがあります。ジェネリックサービスには、特定のもので一般的ではないservice.listCustomers()またはservice.listEmployees()はありません。
理解しにくいAPIは使いにくく、ジェネリックサービスは最初は少し簡単ですが、最終的に複雑さが増します。メンテナンス非開発は、ソフトウェアの中で最も長く、最も高価な部分です。
これは別のポイントで触れます。包括的なサービスのすべてを持つということは、顧客サービスにバグがある場合、従業員サービスを修正するために従業員サービスを停止する必要があることを意味します。このバグは、両方のサービスに影響を与える可能性もあります。 Microservicesは、アプリケーションを停止させることなくサービスを停止することができるため、この問題は発生しません。
一般的なパターンを使用してマイクロサービスを実装することができます。言い換えれば、従業員と顧客サービスの両方が、彼らの操作においてDOAパターンを使用することができる。コードは何らかの方法でライブラリ間で共有できますが、完全に独立したものになります。
- 1. DBテーブルごとのマイクロサービス?
- 2. マイクロサービスごとに専用のCronジョブを持つGAEマイクロサービス
- 3. Tibbleデータ型の行ごとの合計
- 4. マイクロサービス間のデータ一貫性
- 5. データ型ajaxメソッドごとの並べ替え
- 6. Docker内蔵自己完結型マイクロサービス
- 7. C++データ型とC#データ型
- 8. C#データ型とMySqlデータ型
- 9. マイクロサービスのタイムアウトとトランザクション
- 10. GTKのデータ型とベースのデータ型
- 11. マイクロサービス:RESTとメッセージング
- 12. マイクロサービスとデータベース
- 13. GraphQLとマイクロサービス
- 14. マイクロサービス:データベースとマイクロサービスインスタンス
- 15. ドッカーとマイクロサービス
- 16. 大規模データ用マイクロサービス間の通信
- 17. データごとの分割mysql
- 18. テーブルタイプごとのデータ取得
- 19. データを結合するNodeJSマイクロサービス
- 20. マイクロサービスとしてのユーザー
- 21. マイクロサービスの分割と命名
- 22. サーバレスアーキテクチャとマイクロサービスの関係
- 23. マイクロサービスとAPIの接続
- 24. クラスとデータ型
- 25. アロケータ内のオブジェクトごとのデータ?
- 26. セッションごとのデータ。 (クライアント側のデータテーブル)
- 27. SignalRのリクエストごとの静的データ
- 28. ログ・データの分ごとの分数
- 29. マイクロサービス、amqpとサービスレジストリ/発見
- 30. SQLiteの "Text"データ型と "String"データ型の相違
詳細な回答ありがとうございました! – David