Zookeeper实现注册与发现
1.Zookeeper的数据模型
(1) Zookeeper的数据模型,类似于树形结构:
(2) Zookeeper的每一个节点成为称为Znode,主要用来存储数据。
- data : 存储数据信息。
- acl : 记录Znode的访问权限。
- child : 当前节点的子节点引用。
- stat :包含Znode的各种元数据,事物Id,版本号等。
(3) Znode的引用方式是路径引用,例如:
/core/UserCoreService
2.Zookeeper的事件通知
Watch相当于注册在特定Znode上的触发器,当该Znode中执行写操作时,服务端会异步通知客户端。
具体的交互过程:
- 客户端调用 getData() 方法,watch参数是true。服务器接收到请求,返回节点数据,并且在对应的哈希表里插入被 Watch的Znode路径,以及Watcher列表。
- 当被Watch的Znode已删除,服务端会查找哈希表,找到该Znode对应的所有Watcher,异步通知客户端,并且删除哈希表中对应的key-value;
3.实现注册与发现
(1)注册
提供者将自身信息(ip,port,权重等)注册到zookeeper上。zookeeper为其创建一个Znode,该节点的data中保存提供者的信息。
(2)发现
消费者根据路径参数去zookeeper中getData()自己需要调用的提供者信息,将服务注册信息缓存到本地。
转载于:https://www.cnblogs.com/zhouzhile/p/11194439.html
Zookeeper实现注册与发现相关推荐
- SpringBoot系列:9. 分布式系统,Dubbo,Zookeeper服务注册与发现
前言 本章主要对分布式系统,RPC的实现方式和Zookeeper实现做一个详细的概述并通过实战代码加深对他们的了解. 1. 分布式 什么是分布式系统? :"分布式系统是若干独立计算机的集合, ...
- 8、Zookeeper服务注册与发现原理浅析
了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下Zookeeper是如何实现服务的注册与 ...
- Zookeeper服务注册与发现
Zookeeper作为服务注册与发现的解决方案,它有如下优点: 1. 它提供的简单API 2. 已有互联网公司(例如:Pinterest,Airbnb)使用它来进行服务注册与发现 3. 支持多语言的客 ...
- Zookeeper 服务注册与发现01——服务提供者
<!-- SpringBoot整合zookeeper客户端 --><dependency><groupId>org.springframework.cloud< ...
- Zookeeper 服务注册与发现02——服务消费者
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- zookeeper查看注册服务器,zookeeper服务器注册
Dubbo之旅-注册中心-Zookeeper initLimit:这个配置项是用来配置Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zooke ...
- Web Api 基于Zookeeper的服务注册与发现
差异 基于Nginx的服务提供和消费 基于zookeeper的服务注册和发现 zk的负载均衡是可以调控,nginx只是能调权重,其他需要可控的都需要自己写插件:但是nginx的吞吐量比zk大很多,可以 ...
- 基于Zookeeper实现简易版服务的注册与发现机制
一.功能要求 基于Zookeeper实现简易版服务的注册与发现机制 启动2个服务端 将服务端IP和端口信息注册到Zookeeper上 启动1个客户端 从Zookeeper中获取2个服务端节点信息 客户 ...
- Eureka的初理解【服务注册与发现、高可用集群、自我保护机制、与Zookeeper的比较】
Eureka的初理解 什么是Eureka? Eureka[读音要知道怎么读] Netflix 在设计 Eureka 时,遵循的就是AP原则(CAP文章下面有介绍). Eureka是Netflix的一个 ...
最新文章
- 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构
- 微信小程序-canvas绘制文字实现自动换行
- PHP正则表达式的使用
- 腾讯企业邮箱API实现单点登录和获取企业未读邮件
- nginx 入门配置
- 电子元器件首饰!送给你喜欢的女孩!
- Enterprise Library 4.1 快速上手(图)
- python 保存图片代码_最简单的selenium+Python自动右键保存图片
- 字符串比较strcmp
- linux下日志文件的查找(tail和grep)
- keycloak mysql_keycloak搭配mysql
- 程序员面试金典——1.6像素翻转
- postman 配置统一的ip地址
- linux监测服务日志脚本,LINUX下的一个性能监测脚本
- 2016年最火的15款HTML5游戏引擎
- 一篇文章看明白 Android 从点击应用图标到界面显示的过程
- 七段数码显示管—设计报告,visio图,Multisim仿真
- 理解微分方程和线性代数的联系
- Opencv存图读图
- 四旋翼无人机学习第19节--allgero的板框导入,网表导入