【发布时间】:2019-07-06 19:33:07
【问题描述】:
我有两个作为微服务托管的模块(带 DB1 的 mod1 和带 DB2 的 mod2)。这两个模块都有一些共同的功能,可以与 DB1 和 DB2 交互。
Approach_1:- 将另一个 mod3 作为公共组件的共享库 jar 并将其注入两个模块以避免重复代码
Approach_2:- 为通用组件创建另一个微服务,而不是共享库 jar。
不确定哪种方法在设计方面更好,我需要在这里考虑哪些标准?
根据我的理解,它应该是一个共享库而不是微服务,因为它将与多个数据库进行交互。如果它是共享 jar,则该模块在逻辑上与调用者模块业务相关。
【问题讨论】:
-
为什么你认为微服务不能与多个db交互?
-
另外,我想您了解微服务和库调用之间的延迟差异
-
或方法 3 使 mod1 和 mod2 成为微服务?
-
软件设计应根据其满足要求的程度来判断。对您的要求一无所知,我们不能说哪个选项更适合您,但我可以告诉您,集成样式的选择将影响更多领域,不应仅根据您拥有的数据库数量来做出。跨度>
-
这个 ^... 投票结束,基于意见
标签: design-patterns microservices solid-principles