我正在经历的架构决策之一是构建2个服务而不是1个几乎90%相同的功能。关键在于性能因素。
2项服务的逻辑是:
1项服务的逻辑:
这种经典论证是否采用了标准的行业范围方法?
感谢。
答案 0 :(得分:0)
我认为这将取决于两种服务之间有多少共同的功能和代码。如果它像你所说的90%,那么为另一项服务复制该代码似乎很愚蠢。此外,从维护的角度来看,这意味着每次外部和内部共同的变更都需要两倍的工作。
将1个服务中的外部客户端与内部客户端所需的功能分开(接口可能是?)应该相当简单。我认为这不仅仅是在此时仔细设计1项服务而不是尝试创建和维护2项服务。
答案 1 :(得分:0)
根据您的问题陈述,我建议使用一项服务。
如果您使用两个服务来实现相同的功能,维护成本和服务的完整性可能会受到影响。如果问题出在性能上,那么更好的解决方案是使用多个服务端点和负载平衡来提供有效的使用服务。
在实现中,您可能有两种不同的实现来满足内部和外部用户(使用接口和覆盖功能),但所有用户都指向同一服务