“简单”的Dubbo与Zookeeper (2)- zk原理

前言

上一篇介绍了用Dubbo + zookeeper实现RPC调用,你就没有什么问题吗?

  1. 为什么要用zk?
  2. 为什么消费者要配置zk地址,有什么作用?
  3. 为什么生产者要配置zk地址,有什么作用?

zk在这主要是数据的发布与订阅作用!!!

Idea安装zookeeper

  1. Idea plugin搜索zookeeper插件 ,并重启
  2. 重启之后配置地址

3. 在侧边栏查看工具

zk分析

zk 节点

  1. zk的内部都是由节点组成,类似于二叉树的节点概念,每一个节点都可以存在子节点当前节点信息

2. 节点包括 持久节点临时节点

持久节点

  1. 持久节点顾名思义,当客户端与服务端断开连接后,持久节点不会消失。Dubbo中的服务名节点就是持久节点。

临时节点

  1. 临时节点,当客户端与服务端断开连接后,由于zk的心跳机制,临时节点会被删除。Dubbo中的URL配置节点就是持久节点。

dubbo注册和监听

生产者往zk发布信息

  1. 生产者在配置文件中配置zk地址,在启动项目时,Dubbo会往zk中写入节点。
  2. 节点的目录为:dubbo - 服务名 - providers - URL等地址信息
    另外第四个节点是临时节点,包含IP地址,服务名称,服务的各种方法,dubbo版本号,时间戳等等

3. zk会通过心跳检测连接,如果连接断了,会将第四个节点给删除。

消费者订阅zk节点

  1. 由于消费者有@Refrence注解,dubbo会在zk中监听这个服务的子节点,获取信息。

消费者调用生产者服务

  1. 消费者获取信息后通过Dubbo的各种协议进行远程调用。
  2. 当生产者的某个服务断开连接后,zk会向监听者(消费者)主动发送变化的信息,便于消费者的调用。
  3. 当然如果provider全部断开后,也可以通过直连的方式调用。

问题

  1. 由于消费者是监听生产者的节点,那么dubbo在zk中创建的消费者节点是什么用途
    猜测:用于给dubbo-admin等提供消费者信息等。

结尾

由于车辙还未看过Dubbo注册订阅的源码,因此上述不保证百分百正确~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值