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