在rpc框架里面,我们会涉及到一个很重要的就是服务的注册与发现。所以这里我们需要依托一个注册中心。
常见的注册中心选项有:
eureka zookeeper nacos Consul 等等
在常见的rpc框架里面,我所了解到的使用度最高的注册中心有:zookeeper和nacos(这里的话是列举的我常见的rpc框架)。尤其以zookeeper用的比较多,在国内由于dubbo的适用面比较广,dubbo在早期的时候就使用的zookeepoer作为注册中心,因此zookeeper算是非常景点的服务众测中心中间件了。
下面介绍下使用zookeeper作为注册中心的核心流程:
1、服务启动之后,当前服务调用zookeeper的api,在zookeeper的${/service}路径下填写自己的服务信息(包括不仅限于:服务名称,ip地址,端口等等)。 2、消费者在调用对应的服务的时候,会通过调用zookeeper的api,在${/service}路径下获取对应的服务列表。 3、消费者会把从zookeeper上获取的服务信息缓存在本地,避免每次请求的时候都去获取一遍这里的服务列表。 4、消费者通过拿到的服务列表,再与服务提供者进行网络通信进行调用。 5、某个服务下线之后,zookeer在向当前服务提供者发送请求的时候,当前服务提供者没有给予zookeeper回应,那么zookeeper会认为这个服务挂掉了,那么此时就会把当前服务者的信息从服务列表中剔除掉。 6、服务消费者通过发布-订阅模式监听zookeeper上的${/service}路径上的信息,如果信息发生了变更,那么此时消费者会直接更新本地的服务列表。
以上我们就是关于zookeeper的简单介绍,由于本系列是一个研究学习的目的,因此对于我们来说,不介绍很多深层次的含义,主要是为了给大家介绍整个rpc相关的核心知识点。
还没有评论,来说两句吧...