Zookeeper应用之一:数据发布与订阅初体验
Zookeeper到底是什么?可以从Zookeeper提供的功能来理解。本篇小作文就是使用其提供的功能之一:数据发布与订阅。
需求:服务端开启多个实例提供服务,客户端使用服务。如果服务端某个服务下线或者新服务上线,客户端可感知并与客户端断开或者接连服务端。
分析:利用Zookeeper作为注册中心,服务端进行注册,客户端读取注册信息。
实现:
一、服务器端启动时自动将ip/port注册到Zookeeper
1、注册时点:服务端绑定端口后注册

2、注册具体实现:

3、验证:
启动两个服务端实例,查看Zookeeper节点信息(Zookeeper服务端启动,参考CentOS8系统上Zookeeper安装启动 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com))
1)未启动服务端实例前,Zookeeper节点信息

具体节点信息

2)启动一个服务127.0.0.1:8899,查看节点信息


3)启动一个服务127.0.0.1:8989,查看节点信息

二、客户端启动使用浏览器访问服务端时,自动捕获服务实例上下线地同时链接服务器端
1、仅初始两个服务:8899和8989


2、上线一个服务:127.0.0.1:8889



3、下线一个服务



以上是客户端结果验证,那么是如何实现的呢?
分析:客户端访问服务器端,重点是获得服务端的ip:port。如果没有Zookeeper注册中心提供数据的发布(此案例中服务端ip:port作为数据发布到Zookeeper相关节点),那么客户端可能就需要硬编码,如下:

一旦有新的服务实例上线或者某个服务下线,那么就得重新编写代码。如果是生产环境,服务由于某种未知原因下线,那么会直接影响生产运行。
客户端如何利用Zookeeper实现客户端订阅注册信息数据信息的呢?此案例订阅的事lf_provider节点下所有子节点的数据信息,具体实现如下:
1、链接Zookeeper服务

2、获取注册中心数据信息(ip:port 列表)

3、新建客户端实例链接所有地址信息建立客户端链接列表

4、实际业务逻辑中随机使用一个客户端链接

以上就是Zookeeper应用之一~数据发布与订阅,在实际业务中解决共享数据的集中管理及动态更新并动态获取数据。
在以上体验中,用到了Zookeeper提供的API及命令行,后续将分别介绍。
Zookeeper应用之一:数据发布与订阅初体验的更多相关文章
- ZooKeeper 典型应用场景-数据发布与订阅
ZooKeeper 是一个高可用的分布式数据管理与系统协调框架.基于对 Paxos 算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得 ZooKeeper 可以解决很多分 ...
- Zookeeper学习(八):Zookeeper的数据发布与订阅模式
http://blog.csdn.net/ZuoAnYinXiang/article/category/6104448 1.发布订阅的基本概念 1.发布订阅模式可以看成一对多的关系:多 ...
- OpenStack最新版本--Victoria发布亮点与初体验
前言 `OpenStack`是一个云操作系统,可控制整个数据中心内的大型计算,存储和网络资源池,所有资源均通过具有通用身份验证机制的`API`进行管理和配置. 还提供了一个仪表板,可让管理员进行控制, ...
- Dubbo基础一之实战初体验
本以为写这个小作文没什么难度的,可是好像并不是.前段时间重心放在驾考科目二,就想着小作文科二考过了再写也不是事,因为都实战过了.今天想着写却发现脑袋里啥都想不起来了,得翻项目和笔记回忆一下.所以还是那 ...
- SQLServer 中发布与订阅
在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具kettle,那么今天这些天变接触到了一种新的方法,就是SqlServer中自带的发布与订阅. 首先说明一下数据复制的流程.如 ...
- 发布与订阅SQLServer
SQLServer 中发布与订阅 在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具lettle,那么今天这些天变接触到了一种新的方法,就是SqlServer中自带的发布与订阅 ...
- (原)3.2 Zookeeper应用 - 数据的发布与订阅
本文为原创文章,转载请注明出处,谢谢 数据的发布与订阅 1.应用 服务端监听数据改变,客户端创建/更新节点数据,客户端提供数据,服务端处理 2.原理 客户端监控节点数据改变事件(例如配置信息,下图的c ...
- Zookeeper实现数据的发布和订阅
使用场景 当一个对象的改变,需要通知其他对象而且不知道要通知多少个对象,可以使用发布订阅模式 .在分布式中的应用有配置管理(Configuration Management) .集群管理 ...
- SQL 2012 发布与订阅实现数据同步 图解(解决 错误22022)
概念参见:https://msdn.microsoft.com/zh-cn/library/ms151170.aspx 推送订阅 对于推送订阅,发布服务器将更改传播到订阅服务器,而无需订阅服务器发出请 ...
随机推荐
- doT.js模板用法
前提:引入doT.min.js: <script type="text/javascript" src="js/jquery.js"></sc ...
- 【洛谷】P1067 多项式输出
原题链接:P1067 多项式输出 题目分析:学长推荐的OJ网站 --洛谷,发现挺好用的还可以下载提交出错的数据. 废话就不多说了,这道题属于基础题.提交出错主要是因为一些小细节不到位,这里就不一一赘述 ...
- 面试必问之 CopyOnWriteArrayList,你了解多少?
一.摘要 在介绍 CopyOnWriteArrayList 之前,我们一起先来看看如下方法执行结果,代码内容如下: public static void main(String[] args) { L ...
- 匿名函数托管 func-spring-boot-starter
匿名函数托管 func-spring-boot-starter 项目地址 func-spring-boot-starter开源项目地址: https://gitee.com/yiur/func-spr ...
- [USB波形分析] 全速USB波形数据分析(一)
在之前的文章一次CAN波形分析之旅里,根据示波器采集的波形数据,详细地分析了CAN通信.今天来分析USB数据,还是同样的流程,但是这次使用matplotlib来协助分析. USB基本波形 USB通过一 ...
- IPV4地址,子网掩码,子网划分
转载自https://blog.csdn.net/qq_45108415/article/details/114179407
- 科技爱好者周刊(第 176 期):中国法院承认 GPL 吗?
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 『无为则无心』Python基础 — 41、Python中文件的读写操作(一)
目录 1.文件操作步骤 2.文件的读写操作 (1)文件的打开 (2)打开文件模式 (3)获取一个文件对象 (4)关于文件路径 1.文件操作步骤 当我们要读取或者写入文件时,我们需要打开文件,在操作完毕 ...
- 守护石谈学习Java之路
这次在CSDN Blink发表了几篇关于Java编程学习的小作文,讲述了Java工程师的成长路线.Java学习的技能树和入门工作要关注的核心问题,我继续做一次文章的整合与延展,以文章的形式发表出来, ...
- AtCoder Beginner Contest 146_E - Rem of Sum is Num
预处理即可 我们要找的是 (f[i] - f[j]) % k == i - j 移项可得 f[i] - i = f[j] - j 在 i - j <= k 的条件下 因此题目变成了,对于每个右端 ...