【发布时间】:2021-11-25 00:53:30
【问题描述】:
比如说,我有 System1 通过它们之间的适配器微服务连接到 System 2。
System1 -> rest-calls --> Adapter (converts request-response + some extra logic, like validation) -> System2
System1 更像是一个整体,存在于许多国家/地区(但它可能会改变)。
问题是:从微服务架构和部署的角度来看,Adapter应该是每个国家一个。说Adapter-Uk、Adapter-AU等。还是应该只是可以同时处理多个国家的Adapter?
我的意思是:
拥有单一系统/适配器服务:
优势:拥有一个代码库,90% 的国家之间的自适应代码逻辑是相同的。易于引入新的变化。
缺点:一旦我们部署了系统,并且出现了一个错误,它可能会同时影响到许多国家。不安全。
要有一个单独的系统:
缺点:一旦对一个系统进行了一些通用更改,那么对于所有其他国家/地区/服务都应该“复制粘贴”。从开发人员的角度来看,重复,不聪明.. 工作。
优势: 更改/部署更安全。
问:从微服务架构的角度来看,哪种方式更可取?
【问题讨论】:
-
您的适配器域是否足够大,以至于您计划让单独的团队负责单独的国家/地区服务?独立的团队会从能够独立开发/部署中受益吗?如果您不考虑单独的团队,这可能表明按国家/地区分开不是正确的选择。
-
在高层次上,如果对域了解不多,您需要确保确定正确的域边界,这应该是拥有单独微服务的先决条件。此外,作为一般经验法则,服务应该与客户端无关。
-
@ses 您能在这里找到最佳解决方案吗?我有类似的设置,你的建议会很有帮助
标签: deployment architecture microservices