如何从技术演进的角度去剖析服务治理中的注册中心
Producer
Consumer
注册中心
从技术本质的角度去理解注册中心,首先必须要了解Producer和Consumer,因为有了业务问题的述求,才会产生注册中心。
Producer
从技术演进的角度去剖析注册中心为什么会存在,存在的价值时什么?没有注册中心之前,Producer和Consumer之间如何完成高效的通信?
进程(Linux)间的通信方式有:
管道
消息队列
共享内存
信号量
Socket
java中如何完成一次Consumer到Producer的调用,肯定我们一下子就联想到Socket和HTTP/HTTPS,可以这样梳理,java中能够完成一次通信的方式有如下:
Socket
RMI
WEBService
HTTP/HTTPS
file
存储
大名鼎鼎的Dubbo和SpringCloud,就是基于如上的通信方式封装的RPC框架,Dubbo基于Netty的Socket,SpringCloud基于HTTP。
Producer可以这样理解,它就是一个通用客户端,业务可以直接用它来给服务对象提供通信服务。
Consumer
Consumer本质上和 Producer一样,也是一个客户端,但是从通信的上行和下行的角度考虑,刚好相反。
注册中心
抛开注册中心,Producer和Consumer是可以直接通信的,但是为什么要去搞注册中心,从技术服务业务问题的角度去剖析,肯定会有他存在的道理。
服务动态发现及可伸缩能力,服务提供者机器增减能被服务调用者通过注册中心动态感知,而且通过增减机器可以实现服务的弹性伸缩。
通过注册中心可以动态地监控服务运行质量及服务依赖,为服务提供服务治理能力。
用更加精辟的一句话来形容注册中心:提升通信稳定性服务的前提下,提升业务接入效率。