vlambda博客
学习文章列表

如何从技术演进的角度去剖析服务治理中的注册中心

  • Producer

  • Consumer

  • 注册中心

   从技术本质的角度去理解注册中心,首先必须要了解ProducerConsumer,因为有了业务问题的述求,才会产生注册中心。

Producer

   从技术演进的角度去剖析注册中心为什么会存在,存在的价值时什么?没有注册中心之前,ProducerConsumer之间如何完成高效的通信?

   进程(Linux)间的通信方式有:

  • 管道

  • 消息队列

  • 共享内存

  • 信号量

  • Socket

   java中如何完成一次ConsumerProducer的调用,肯定我们一下子就联想到SocketHTTP/HTTPS,可以这样梳理,java中能够完成一次通信的方式有如下:

  • Socket

  • RMI

  • WEBService

  • HTTP/HTTPS

  • file

  • 存储

  大名鼎鼎的DubboSpringCloud,就是基于如上的通信方式封装的RPC框架,Dubbo基于NettySocketSpringCloud基于HTTP

  Producer可以这样理解,它就是一个通用客户端,业务可以直接用它来给服务对象提供通信服务。

Consumer

  Consumer本质上和 Producer一样,也是一个客户端,但是从通信的上行和下行的角度考虑,刚好相反。

注册中心

  抛开注册中心,ProducerConsumer是可以直接通信的,但是为什么要去搞注册中心,从技术服务业务问题的角度去剖析,肯定会有他存在的道理。

  • 服务动态发现及可伸缩能力,服务提供者机器增减能被服务调用者通过注册中心动态感知,而且通过增减机器可以实现服务的弹性伸缩。

  • 通过注册中心可以动态地监控服务运行质量及服务依赖,为服务提供服务治理能力。

   用更加精辟的一句话来形容注册中心:提升通信稳定性服务的前提下,提升业务接入效率。