博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“简单”的Dubbo与Zookeeper (2)- zk原理
阅读量:6148 次
发布时间:2019-06-21

本文共 852 字,大约阅读时间需要 2 分钟。

前言

上一篇介绍了用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注册订阅的源码,因此上述不保证百分百正确~~~

转载地址:http://heqya.baihongyu.com/

你可能感兴趣的文章
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
php小知识
查看>>
Windows下安装、运行Lua
查看>>
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Mindjet MindManager 2019使用教程:
查看>>
游戏设计的基本构成要素有哪些?
查看>>