分布式系统的问题
服务的动态注册和发现,为了支持高并发,OrderService被部署了4份,每个客户端都保存了一份服务提供者的列表,但这个列表是静态的(在配置文件中写死的),如果服务的提供者发生了变化,例如有些机器down了,或者又新增了OrderService的实例,客户端根本不知道,想要得到最新的服务提供者的URL列表,必须手工更新配置文件,很不方便。
问题 : 客户端和服务提供者的紧耦合
左边的图表示一些RPC的调用方,它们怎么知道这些RPC服务在哪里呢,它们在本地有配置文件,每个调用方都维持一个配置文件,怎么更新统一呢?不能及时更新啊,如果其中一个服务挂掉了的话。
解决方案:
- 解除耦合,增加一个中间层 – 注册中心它保存了能提供的服务的名称,以及URL(RPC服务所在的节点地址和端口号)。首先这些服务会在注册中心进行注册,当客户端来查询的时