微服务之间的最佳调用方式!| CSDN 博文精选(12)

但这样建立的服务组合可能只适合一个程序使用,没有多少共享价值。因此如果有合适的场景就采用,否侧也不必强求。虽然我们不能降低RPC服务之间的耦合度,却可以减少这种紧耦合带来的影响。

降低紧耦合的影响

什么是紧耦合的主要问题呢?就是客户端和服务端的升级不同步。服务端总是先升级,客户端可能有很多,如果要求它们同时升级是不现实的。它们有各自的部署时间表,一般都会选择在下一次部署时顺带升级。

一般有两个办法可以解决这个问题:

同时支持多个版本:这个工作量比较大,因此大多数公司都不会采用这种方式。

服务端向后兼容:这是更通用的方式。例如你要加一个新功能或有些客户要求给原来的函数增加一个新的参数,但别的客户不需要这个参数。这时你只好新建一个函数,跟原来的功能差不多,只是多了一个参数。这样新旧客户的需求都能满足。它的好处是向后兼容(当然这取决于你使用的协议)。

它的坏处是当以后新的客户来了,看到两个差不多的函数就糊涂了,不知道该用那个。而且时间越长越严重,你的服务端可能功能增加的不多,但相似的函数却越来越多,无法选择。

推荐阅读