当前位置: 首页 > news >正文

springCould中的zookeeper-从小白开始【3】

目录

1.启动zookeeper❤️❤️❤️

2.创建8004模块 ❤️❤️❤️

 3.临时节点还是永久节点❤️❤️❤️

4.创建zk80消费模块❤️❤️❤️


1.启动zookeeper❤️❤️❤️

  • 进入自己zookeeper的bin目录下 分别使用命令:
./zkServer.sh start   和 ./zkCli.sh -server 主机名

2.创建8004模块 ❤️❤️❤️

1.建模块

在父工程下创建模块

注意:jdk版本和,maven版本

2.添加pom

1.springboot依赖

2.mybatis依赖

3.druid依赖

4.mysql依赖

5.zookeeper依赖

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.16</version></dependency><!--mysql-connector-java--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--引入自己的api通用包--><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--springboot整合zookeeper客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId></dependency></dependencies>

3.添加yml

1.服务端口

2.服务名称

3.数据库连接池

4.zookeeper连接地址

5.mybatis配置

server:port: 8004spring:application:#服务名称name: cloud-provider-paymentdatasource:#druid连接池type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springcloudusername: rootpassword: 123456#zookeeper服务注册中心cloud:zookeeper:connect-string: 192.168.20.129:2181,192.168.20.130:2181,192.168.20.131:2181mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.xz.springcloud.entity

4.添加主启动类

@EnableDiscoveryClient:将服务注册到服务注册中心(zookeeper)

@SpringBootApplication
@EnableDiscoveryClient//作为服务中心
public class PaymentMain8004 {public static void main(String[] args) {SpringApplication.run(PaymentMain8004.class);}
}

5.编写业务类

@RestController
public class PaymentController {@Autowiredprivate PaymentService paymentService;@Value("${server.port}")private String serverPort;@GetMapping("/payment/getById/{id}")public CommonResult getById(@PathVariable("id") Integer id){Payment payment = paymentService.getPaymentById(id);if (payment!=null){return new CommonResult(200,"查询成功,serverPort:"+serverPort,payment);}else {return new CommonResult(404,"查询无果,serverPort:"+serverPort,null);}}@RequestMapping("/payment/zk")public String paymentZk(){return "springCloud with zookeeper:"+serverPort+"\t"+ UUID.randomUUID().toString();}
}

6.测试

  • 1.启动主启动类,刷新浏览器

  • 2.访问zookeeper

 说明zookeeper配置成功

 3.临时节点还是永久节点❤️❤️❤️

当关闭8004服务时,在查询zookeeper,发现节点剔除

所以:zookeeper存储的是临时节点,当服务消失时,会马上剔除 

4.创建zk80消费模块❤️❤️❤️

1.建模块

在父工程下创建模块

注意jdk版本和maven版本

2.写pom

1.springboot依赖

2.通用依赖

3.zookeeper依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.example</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency><!--spring boot整合zookeeper--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId></dependency></dependencies>

3.改yml

1.服务端口

2.服务名

3.zookeeper连接ip(我这里使用集群)

server:port: 80spring:application:name: cloud-consumer-ordercloud:zookeeper:connect-string: 192.168.20.129:2181,192.168.20.130:2181,192.168.20.131:2181

4.主启动类

@EnableDiscoveryClient添加上

@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {public static void main(String[] args) {SpringApplication.run(OrderZkMain80.class);}
}

5.业务代码

  • 1.先将Rest Template注入到spring中

注意:因为访问的是服务名,而不是具体的ip,所以加上@LoadBalance注解

@Configuration
public class ApplicationConfig {@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}
  • 2.controller

1.声明常量,表示zookeeper中8004的服务名

2.注入RestTemplate

3.调用restTemplate访问

@RestController
public class OrderController {public static final String INVOKE_URL = "http://cloud-provider-payment";@Autowiredprivate RestTemplate restTemplate;@GetMapping("/payment/getById/{id}")public CommonResult<Payment>  getPayment(@PathVariable("id") Integer id){return restTemplate.getForObject(INVOKE_URL+"/payment/getById/"+id,CommonResult.class);}@GetMapping("/payment/zk")public String getDiscovery(){return restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);}
}

6.测试

  • 1.使用80访问,刷新浏览器,依然成功

  • 2.查看zookeeper节点 ,节点创建成功

 

相关文章:

springCould中的zookeeper-从小白开始【3】

目录 1.启动zookeeper❤️❤️❤️ 2.创建8004模块 ❤️❤️❤️ 3.临时节点还是永久节点❤️❤️❤️ 4.创建zk80消费模块❤️❤️❤️ 1.启动zookeeper❤️❤️❤️ 进入自己zookeeper的bin目录下 分别使用命令&#xff1a; ./zkServer.sh start 和 ./zkCli.sh -serve…...

Node.js-模块化(二)

1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层将系统拆分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 1.2 编程领域中的模块化 编程领域中的模块化&#xff0c;就是遵守固定的规则&…...

MAC 安装nginx

使用Homebrew方式进行安装 步骤&#xff1a; 1、更新 Homebrew brew update 2、下载并安装 Nginx brew install nginx 3、查看 nginx 配置信息 brew info nginx zhanghuaBreeze ~ % brew info nginx // 版本信息 > nginx: stable 1.25.1 (bottled), HEAD HTTP(S) se…...

开源 AI 新秀崛起:Bittensor 更像是真正的“OpenAI”

强大的人工智能正在飞速发展&#xff0c;而完全由 OpenAI、Midjourney、Google&#xff08;Bard&#xff09;这样的少数公司控制 AI 不免让人感到担忧。在这样的背景下&#xff0c;试图用创新性解决方案处理人工智能中心化问题、权力集中于少数公司的 Bittensor&#xff0c;可谓…...

设计模式:循序渐进走入工厂模式

文章目录 前言一、引入二、简单工厂模式1.实现2.优缺点3.扩展 三、工厂方法模式1.实现2.优缺点 四、抽象工厂模式1.实现2.优缺点3.使用场景 五、模式扩展六、JDK源码解析总结 前言 软件设计模式之工厂模式。 一、引入 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类…...

如何将图片(matlab、python)无损放入word论文

许多论文对插图有要求&#xff0c;直接插入png、jpg一般是不行的&#xff0c;这是一篇顶刊文章&#xff08;pdf&#xff09;的插图&#xff0c;放大2400%后依旧清晰&#xff0c;搜罗了网上的方法&#xff0c;总结了一下如何将图片无损放入论文中。 这里主要讨论的是数据生成的图…...

在Next.js和React中搭建Cesium项目

在Next.js和React中搭建Cesium项目&#xff0c;需要确保Cesium能够与服务端渲染(SSR)兼容&#xff0c;因为Next.js默认是SSR的。Cesium是一个基于WebGL的地理信息可视化库&#xff0c;通常用于在网页中展示三维地球或地图。下面是一个基本的步骤&#xff0c;用于在Next.js项目中…...

docker学习(十、搭建redis集群,三主三从)

文章目录 一、docker创建6个redis容器创建6个redis容器回顾各个属性含义 二、划分主从&#xff0c;3主3从划分主从查看状态查看节点信息 docker搭建Redis集群相关知识&#xff1a; docker学习&#xff08;九、分布式存储亿级数据知识&#xff09; docker学习&#xff08;十、搭…...

ES排错命令

GET _cat/indices?v&healthred GET _cat/indices?v&healthyellow GET _cat/indices?v&healthgreen确定哪些索引有问题&#xff0c;多少索引有问题。_cat API 可以通过返回结果告诉我们这一点 查看有问题的分片以及原因。 这与索引列表有关&#xff0c;但是索引…...

爬虫实战案例 -- 爬取豆瓣读书网页内容

进入网站检查信息 , 确定请求方式以及相关数据 找到爬取目标位置 开始敲代码 # 链接网站 def url_link(url):res requests.get(url,headers headers)response res.textparse_data(response)# 爬取信息 def parse_data(data):msg <li\sclass"media\sclearfix…...

某电子文档安全管理系统 SQL注入漏洞复现

漏洞介绍 亿赛通电子文档安全管理系统 (简称: CDG)是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&#xff0c;对电子文档进行全生命周期防护…...

ant-design-vue Message 用法以及内容为 html片段情况

全局配置&#xff1a; // main.ts// 进行全局配置 message.config({top: 0.7rem,//高度位置duration: 2,//提示持续时间maxCount: 1,//最大页面同时展示几条 });项目中最常用的用法&#xff1a; 1. 字符串 message.success("导入成功");2. html片段 message.error…...

2024 Move 开发者大会火热报名中!1 月 13 至 14 日上海见

2024 Move 开发者大会将于 1 月 13 日至 1 月 14 日在上海举办。本届 Move 开发者大会以 “Move 生态关键的一年” 为主题&#xff0c;由 MoveFuns 、OpenBuild 和 MoveBit 主办&#xff0c;Rooch、AptosGlobal、alcove、zkMove、云赛空间和 TinTinLand 协办&#xff0c;并得到…...

hbase用shell命令新建表报错ERROR: KeeperErrorCode = NoNode for /hbase/master

或者HMster开启后几秒消失问题解决 报错如图&#xff1a; 首先jps命令查看当前运行的内容有没有HMaster,如果没有&#xff0c;开启一下hbase,稍微等一会儿&#xff0c;再看一下HMaster,如果仍和下图一样没有&#xff0c;就基本找到问题了 本人问题原因&#xff1a;hbase-site…...

PyQt中的冒号(:)

在这段代码中&#xff0c;冒号&#xff08;:&#xff09;的使用是类型注解的一种形式&#xff0c;用于显式地指定变量的类型。在Python 3.5及以后的版本中&#xff0c;引入了类型注解的概念&#xff0c;可以在变量名后面使用冒号来注解变量的类型。 例如&#xff0c;在以下代码…...

yolo-nas无人机高空红外热数据小目标检测(教程+代码)

前言 YOLO-NAS是目前最新的YOLO目标检测模型。从一开始&#xff0c;它就在准确性方面击败了所有其他 YOLO 模型。与之前的 YOLO 模型相比&#xff0c;预训练的 YOLO-NAS 模型能够以更高的准确度检测更多目标。但是我们如何在自定义数据集上训练 YOLO NAS&#xff1f; 这将是我…...

Ubuntu22.04安装python2

Ubuntu 20.04是继Ubuntu 18.04 LTS之后的下一个长期支持(LTS)版本&#xff0c;从Ubuntu 20.04开始系统不再预装python2。 如果我们有一些老旧的代码需要运行&#xff0c;可以在新版的Ubuntu系统上自行安装python2。 安装命令&#xff1a; sudo apt install python2查看pytho…...

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中&#xff0c;攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散&#xff0c;因此难以简单防范。 本实验联合使用有多种AWS服务&#xff1a;Cloudfront、 Lambdaedge…...

Qt不能在线程函数操作UI

Qt的官方文档虽然并没有明确说明&#xff0c;不能在子线程中操作UI&#xff0c;但是&#xff0c;因为Qt是事件循环机制&#xff0c;所有的UI事件都是在主线程中处理的&#xff0c;如果在子线程中直接操作UI&#xff0c;就会存在线程安全问题&#xff0c;严重时候会使程序挂掉。…...

web网页端使用webSocket实现语音通话功能(SpringBoot+VUE)

写在前面 最近在写一个web项目&#xff0c;需要实现web客户端之间的语音通话&#xff0c;期望能够借助webSocket全双工通信的方式来实现&#xff0c;但是网上没有发现可以正确使用的代码。网上能找到的一个代码使用之后只能听到“嘀嘀嘀”的杂音 解决方案&#xff1a;使用Jso…...

BlueDot BME280库深度解析:嵌入式多传感器驱动实践

1. BlueDot BME280 库技术解析&#xff1a;面向嵌入式工程师的多传感器驱动实践指南BME280 是博世&#xff08;Bosch&#xff09;推出的高精度环境传感器&#xff0c;集成温度、相对湿度与气压三参数测量能力&#xff0c;广泛应用于气象站、IoT终端、无人机姿态补偿及室内环境监…...

【实战指南】Green Hills MULTI-IDE 从零安装到嵌入式开发环境搭建

1. Green Hills MULTI-IDE 初探&#xff1a;为什么选择它&#xff1f; 如果你正在寻找一款强大的嵌入式开发工具&#xff0c;Green Hills MULTI-IDE 绝对值得考虑。作为一个在嵌入式领域摸爬滚打多年的老手&#xff0c;我用过Keil、IAR等各种IDE&#xff0c;但MULTI-IDE给我的体…...

告别AP离线!深入浅出解析神州数码AC/AP注册机制:二层发现 vs. DHCP Option 43实战选型

神州数码无线网络部署实战&#xff1a;AC与AP注册机制深度解析 在企业无线网络部署中&#xff0c;AC&#xff08;无线控制器&#xff09;与AP&#xff08;无线接入点&#xff09;的注册机制是构建稳定无线网络的基础环节。神州数码作为国内领先的网络设备提供商&#xff0c;其A…...

Obsidian-i18n插件终极指南:一站式解决Obsidian插件国际化难题

Obsidian-i18n插件终极指南&#xff1a;一站式解决Obsidian插件国际化难题 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾为Obsidian插件的英文界面感到困扰&#xff1f;面对功能强大的插件却因为语言障碍而无法…...

终极指南:如何利用Reor AI智能笔记应用的本地化语义搜索与智能推荐功能

终极指南&#xff1a;如何利用Reor AI智能笔记应用的本地化语义搜索与智能推荐功能 【免费下载链接】reor Self-organizing AI note-taking app that runs models locally. 项目地址: https://gitcode.com/GitHub_Trending/re/reor Reor是一款革命性的AI智能笔记应用&am…...

5个颠覆性智能测试提升技巧:Claude Code自动化测试生成全解析

5个颠覆性智能测试提升技巧&#xff1a;Claude Code自动化测试生成全解析 【免费下载链接】claude-code Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining …...

G-Helper终极指南:华硕ROG笔记本性能优化神器完全解析

G-Helper终极指南&#xff1a;华硕ROG笔记本性能优化神器完全解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…...

NcmpGui:解锁网易云音乐NCM格式的终极桌面解决方案

NcmpGui&#xff1a;解锁网易云音乐NCM格式的终极桌面解决方案 【免费下载链接】ncmppGui 一个使用C编写的转换ncm文件的GUI工具 项目地址: https://gitcode.com/gh_mirrors/nc/ncmppGui 你是否曾因网易云音乐的NCM格式文件无法在其他播放器上正常播放而感到困扰&#x…...

关于我使用MinMix创建了一个Tailwindcss学习网站

一、语言特性&#xff1a;Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一&#xff0c;就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全…...

Sora.FM零基础部署指南:3步上手AI视频生成工具的Linux实践方案

Sora.FM零基础部署指南&#xff1a;3步上手AI视频生成工具的Linux实践方案 【免费下载链接】sorafm 项目地址: https://gitcode.com/GitHub_Trending/so/sorafm Sora.FM是一款基于Sora AI技术的开源视频生成平台&#xff0c;支持通过文本描述创建高质量AI视频。本指南专…...