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 推送订阅 对于推送订阅,发布服务器将更改传播到订阅服务器,而无需订阅服务器发出请 ...
随机推荐
- test_5 排序‘+’、‘-’
题目是:有一组"+"和"-"符号,要求将"+"排到左边,"-"排到右边,写出具体的实现方法. 方法一: l=['-', ...
- 网络协议学习笔记(七)流媒体协议和P2P协议
概述 上一篇讲解了http和https的协议的相关的知识,现在我们谈一下流媒体协议和P2P协议. 流媒体协议:如何在直播里看到美女帅哥 最近直播比较火,很多人都喜欢看直播,那一个直播系统里面都有哪些组 ...
- Numpy实现简单BP神经网络识别手写数字
本文将用Numpy实现简单BP神经网络完成对手写数字图片的识别,数据集为42000张带标签的28x28像素手写数字图像.在计算机完成对手写数字图片的识别过程中,代表图片的28x28=764个像素的特征 ...
- 生产环境上,哨兵模式集群Redis版本升级应用实战
背景: 由于生产环境上所使用的Redis版本并不一致,好久也没有更新,为了避免版本不同对Redis集群造成影响,从而升级为统一Redis版本! 1.集群架构 一主两从三哨兵: 2.升级方案 (1)升级 ...
- MCU软件最佳实践——使用printf打印数据
在mcu上开发应用时,使用串口打印调试信息是最常用的调试手段之一.printf是c标准库提供的函数,可以方便输出格式化的信息.但针对不同的mcu芯片,printf函数要能正常工作,需要做一些移植和适配 ...
- Android官方文档翻译 十四 3.2Supporting Different Screens
Supporting Different Screens 支持不同的屏幕 This lesson teaches you to 这节课教给你 Create Different Layouts 创建不同 ...
- JUC之线程池的实现原理以及拒绝策略
线程池实现原理 向线程池提交任务后,线程池如何来处理这个任务,之前我们了解了7个参数,我们通过这些参数来串联其线程池的实现原理. 1.在创建了线程池后,开始等待请求 2.当调用execute()方法添 ...
- prometheus基本概念(思维导图)
参考文章: prometheus词汇表 prometheus的summary和histogram指标的简单理解
- 从SQL Server数据库导出SQL语句
不同于直接 备份/恢复 或者 导入/导出 数据库操作. 新版本SQL Server客户端中还可以生成相对应的SQL语句. 非常方便与查看和与其他人共享. 连接上数据库后, 右击数据库, 选择 Gene ...
- Shiro 简单介绍和快速入门。
一.shiro是啥? /* * Shiro ? 安全框架是一个 1.功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理,并可用于保护任何应用程序 - 从命令行应用程序,移动应用 ...