SpringBoot集成Curator实现Watch事件监听

news2024/11/27 22:42:54

系列文章目录


文章目录

  • 系列文章目录
  • 前言


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Zookeeper是一个Apache开源的分布式的应用,为系统架构提供协调服务。从设计模式角度来审视:该组件是一个基于观察者模式设计的框架,负责存储和管理数据,接受观察者的注册,一旦数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
在这里插入图片描述
zookeeper安装单机模式

http://www.javacui.com/opensource/445.html

SpringBoot集成Curator实现Zookeeper基本操作

http://www.javacui.com/tool/615.html

看到别人写时,都是使用NodeCache和PathChildrenCache和TreeCache,实际使用时发现这三个类都是已经不再推荐使用,而是推荐CuratorCache

package com.example.springboot;
 
import com.alibaba.fastjson.JSON;
import com.example.springboot.tool.ZkConfiguration;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
/**
 * @Auther: Java小强
 * @Date: 2022/2/4 - 19:33
 * @Decsription: com.example.springboot
 * @Version: 1.0
 */
@SpringBootTest(classes = Application.class)
public class CuratorTest {
    @Autowired
    private ZkConfiguration zk;
 
    // 单节点监听
    @Test
    void nodeCache() throws Exception {
        CuratorFramework client = zk.curatorFramework();
        // 老版本是NodeCache和PathChildrenCache和TreeCache,新版CuratorCache是本节点和所有子节点
        CuratorCache nodecache = CuratorCache.build(client, "/javacui");
        // 启动时会把节点变化历史都传递过来
        nodecache.listenable().addListener(new CuratorCacheListener() {
            @Override
            public void event(Type type, ChildData oldData, ChildData data) {
                System.out.println("节点发生变化");
                System.out.println(JSON.toJSONString(type));
                System.out.println(JSON.toJSONString(oldData));
                System.out.println(JSON.toJSONString(data));
                // "NODE_CHANGED"
                //{"data":"SmF2YeWwj+W8uuWNmuWuog==","path":"/javacui/p1","stat":{"aversion":0,"ctime":1643987130120,
                // "cversion":0,"czxid":63,"dataLength":16,"ephemeralOwner":0,"mtime":1643987143427,"mzxid":64,
                // "numChildren":0,"pzxid":63,"version":1}}
                //{"data":"SmF2YeW0lOeahOWNmuWuog==","path":"/javacui/p1","stat":{"aversion":0,"ctime":1643987130120,
                // "cversion":0,"czxid":63,"dataLength":16,"ephemeralOwner":0,"mtime":1643987265528,"mzxid":66,
                // "numChildren":0,"pzxid":63,"version":2}}
            }
        });
        nodecache.start();
        while (true) {
            // 模拟服务不关闭
        }
    }
}

这样,本节点,子节点,所有节点的监听,都集成到了一个里面进行实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1670972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkis

文章目录 安装插件配置构建超时自动停止 安装插件 在线安装:安装jenkins后,初次启动的时候安装插件 在线安装:插件管理,可选插件中 离线安装:下载插件(.hpi格式) 使用该方法安装插件每次只能安装一个插件,…

软件设计中的数字:7

“ 使软件更易理解的秘密:米勒法则” 小游戏 学习之前先一起玩一个小游戏。 3秒钟时间,看看下面的图片中有多少个小块? 3秒到了,数出来了吗?22个。 没数出来也没关系,我也没数出来o(╥﹏╥)o 现在&…

CentOs搭建Kubernetes集群

kubeadm minikube 还是太“迷你”了,方便的同时也隐藏了很多细节,离真正生产环境里的计算集群有一些差距,毕竟许多需求、任务只有在多节点的大集群里才能够遇到,相比起来,minikube 真的只能算是一个“玩具”。 Kuber…

软件验收测试需要做哪些测试?

软件验收测试是在软件开发完成后的最后一个阶段,用来验证软件是否符合需求和预期的功能。在进行软件验收测试时,需要进行以下几种测试: 功能测试:验证软件的各项功能是否符合需求和预期。包括输入输出的正确性、功能的完整性、功能…

数字绘画教学实训解决方案

一、建设背景 1.1政策背景 教育信息化政策推动:近年来,随着教育信息化政策的不断推动,各级教育部门纷纷出台相关政策,鼓励和支持教育信息化的发展。数字绘画作为现代艺术教育的重要组成部分,其教学实训解决方案的建设…

5.13号模拟前端面试10问

1.介绍箭头函数和普通函数的区别 箭头函数和普通函数在JavaScript中有一些重要的区别。以下是关于这些区别的详细解释: 语法结构上的差异: 箭头函数使用更简洁的语法,它不需要使用function关键字,而是使用一个箭头(…

数据可视化(十):Pandas数据分析师职位信息表分析——箱线图、水平柱状图、学历城市双维分析等高级操作

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

苹果手机系统恢复工具:轻松解决iPhone各类系统问题!

随着苹果手机的iOS系统不断升级,越来越多的系统问题不断出现,如卡在恢复模式、系统崩溃白苹果、应用无响应、等,这些问题不仅影响用户体验,还可能导致手机无法正常使用。 遇到系统问题,一般我们可以先尝试使用强制重启…

云原生技术发展概述:投身云计算,从拥抱云原生开始

一、云原生的起源 云计算领域正在进行着一场革命,主机虚拟化实现了主机资源的池化,可以看作是云计算的上半场。以容器为基础的云原生真正实现了应用层的弹性,可以看作是云计算的下半场。 图来源:CNCF公开资料 有人说&#xff0c…

使用非官网购买Chatgpt的api调用

测试代码 from openai import OpenAI client OpenAI(api_key用户密钥) import json import os import timeclass ChatGPT:def __init__(self, user):self.user userself.messages [{"role": "system", "content": "Agent"}]def as…

嗨动PDF编辑器适合你的pdf编辑器,试试吧!

pdf编辑器有哪些?在数字化办公日益普及的今天,PDF文档因其跨平台、高保真度的特性而备受欢迎。无论是工作汇报、学术研究还是日常学习,我们都需要对PDF文档进行编辑、修改和整理。然而,如何选择合适的PDF编辑器却成了许多人头疼的…

算法题解记录25+++验证二叉搜索树(百日筑基)

题目描述: 难度:中等 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必…

讯方·智汇云校4月HCIE通过28人!证书量总计123!

智汇云校捷报 —4月华为认证证书量123本— 智汇云校4月IE捷报来了 讯方技术2024年PMP第一期3月考期顺利结班,考试全员通过~ 2024年4月,云校HCIA、HCIP、HCIE共通过123人! 62人通过HCIA 33人通过HCIP 28人通过HCIE 祝贺以下学员通过HC…

基于Echarts的大数据可视化模板:服务器运营监控

目录 引言背景介绍研究现状与相关工作服务器运营监控技术综述服务器运营监控概述监控指标与数据采集可视化界面设计与实现数据存储与查询优化Echarts与大数据可视化Echarts库以及其在大数据可视化领域的应用优势开发过程和所选设计方案模板如何满足管理的特定需求模板功能与特性…

喜茶与 BE@RBRICK 联名,开启酷黑2.0全新潮流体验

5 月 13 日,喜茶官宣与知名潮玩 BERBRICK 联名,双方联合推出联名特调饮品「BERBRICK黑凤梨」、联名版 HEYTEA x BERBRICK 公仔套组,以及结合双方品牌元素全新设计的黑银视觉包材、周边、主题店氛围及线下活动等,带来全方位的酷黑潮…

Verilog中信号发生器的代码实现

目录 描述 输入描述: 输出描述: 描述 题目描述: 请编写一个信号发生器模块,根据波形选择信号wave_choise发出相应的波形:wave_choice0时,发出方波信号;wave_choice1时,发出锯齿…

【Java】Java中栈溢出的常见情况

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

ARM架构安全特性之隔离技术

安全之安全(security)博客目录导读 目录 一、保护代码和数据 二、TrustZone 三、安全世界之间的隔离 四、Secure-EL2扩展 五、保护主流计算工作负载 六、领域管理扩展(RME) 七、内存密集型可信应用程序 八、Arm动态TrustZone技术 强制执行明确定义的安全边界是安全工程…

maven .lastUpdated文件作用

现象 有时候我在用maven管理项目时会发现有些依赖报错,这时你可以看一下本地仓库中是否有.lastUpdated文件,也许与它有关。 原因 有这个文件就表示依赖下载过程中发生了错误导致依赖没成功下载,可能是网络原因,也有可能是远程…

韶音、南卡、倍思开放式耳机值得买吗?王牌机型对比测评

今年,开放式耳机市场迎来了众多新品,为消费者提供了丰富的选择。在这样的背景下,正确挑选一款既符合音质需求又兼具佩戴舒适的开放式耳机显得格外关键。作为长期使用开放式耳机的用户,我发现很多人在韶音、南卡、漫步者这三个品牌…