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

Dubbo+Zookeeper

Snipaste_2025-03-05_20-09-43.png

Apache ZooKeeper

通过当前页面下载Zookeeper

Snipaste_2025-03-05_20-56-27.png

Snipaste_2025-03-05_21-12-37.png

在这里启动zookeeper

可以根据这个页面简单学习一下,但是没有集成mysql,也会出现一些报错,且在这之后我们要使用的管理页面是vue的dubbo-admin

dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。-阿里云开发者社区

图文并茂,万字长文!彻底搞清楚Spring Boot 整合Dubbo+Zookeeper【分布式实战】 - 知乎

Snipaste_2025-03-05_21-08-47.png

这是我的模块设计,在设计各个模块的内容之前,先通过github获取dubbo的管理界面

通过GitHub拉取该项目apache/dubbo-admin: The ops and reference implementation for Apache Dubbo

dubbon-admin-ui的vue项目通过vscode启动的视图页面来管理dubbo的项目

npm install
下载node_modules
如果报错应该是node的版本不对,如果安装了nvm可以通过nvm切换至16.x.x版本
npm run dev
启动项目

通过root/root登录dubbo-admin
Snipaste_2025-03-05_22-25-34.png

先启动zookeeper
需要使用这个视图页面来管理dubbo的项目,我们还得启动拉取项目中的dubbo-admin-server模块并先更新完pom.xml中的依赖,maven的版本等等基本项也得改掉,之后启动项目成功便能使用这个视图页面来管理dubbo的项目

根据我的模块设计,我们开始对项目进行架构设计

先引入我们需要的总依赖

<!-- 引入dubbo -->  
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->  
<dependency>  <groupId>org.apache.dubbo</groupId>  <artifactId>dubbo-dependencies-bom</artifactId>  <version>3.2.5</version>  <type>pom</type>  <scope>import</scope>  
</dependency>  <!-- https://mvnrepository.com/artifact/org.apache.curator/curator-x-discovery -->  
<dependency>  <groupId>org.apache.curator</groupId>  <artifactId>curator-x-discovery</artifactId>  <version>4.3.0</version>  
</dependency>  <!-- 注册中心使用的是zookeeper,引入操作zookeeper的客户端 -->  
<dependency>  <groupId>org.apache.curator</groupId>  <artifactId>curator-framework</artifactId>  <version>2.12.0</version>  
</dependency>  <dependency>  <groupId>org.apache.dubbo</groupId>  <artifactId>dubbo</artifactId>  <version>3.2.5</version>  
</dependency>  <dependency>  <groupId>org.jetbrains.kotlin</groupId>  <artifactId>kotlin-reflect</artifactId>  <version>1.9.0</version>  
</dependency>  <dependency>  <groupId>org.apache.dubbo.extensions</groupId>  <artifactId>dubbo-mock-api</artifactId>  <version>3.0.0</version>  
</dependency>  <dependency>  <groupId>org.apache.curator</groupId>  <artifactId>curator-framework</artifactId>  <version>4.3.0</version>  
</dependency>  <dependency>  <groupId>org.apache.curator</groupId>  <artifactId>curator-recipes</artifactId>  <version>4.3.0</version>  
</dependency>  <!-- MyBatis-Plus -->  
<dependency>  <groupId>com.baomidou</groupId>  <artifactId>mybatis-plus-boot-starter</artifactId>  <version>3.5.3.2</version>  
</dependency>  <!-- Spring Boot Web -->  
<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  
</dependency>  <dependency>  <groupId>org.mybatis.spring.boot</groupId>  <artifactId>mybatis-spring-boot-starter</artifactId>  <version>2.2.2</version>  
</dependency>

这里的依赖总的划分一下的话如下图所示

Snipaste_2025-03-05_21-38-16.png

Snipaste_2025-03-05_21-42-08.png

实例

pojo

@Data  @AllArgsConstructor  @NoArgsConstructor  
public class User implements Serializable {  private static final long serialVersionUID = 1L;  // 显式定义  private Long id;  private String name;  
}

service

public interface UserService extends IService<User> {}

Snipaste_2025-03-05_21-48-29.png

实例
控制类

@RestController  
@RequestMapping("/user")  
public class UserController {  private static final Logger log = LoggerFactory.getLogger(UserController.class);  @Reference(timeout = 5000, retries = 1, check = true)  private UserService userService;  @GetMapping("/{id}")  public ResponseEntity<User> getUser(@PathVariable("id") Long id) {  log.info("调用远程服务,用户ID: {}", id);  User user = userService.getById(id);  if (user == null) {  return ResponseEntity.notFound().build();  }  return ResponseEntity.ok(user);  }  
}

yml

server:  port: 8081  
spring:  datasource:  url: jdbc:mysql://localhost:3306/dubbo?useSSL=false&serverTimezone=UTC  username: root  password: 20050101  driver-class-name: com.mysql.cj.jdbc.Driver  application:  name: dubbo-consumer  dubbo:  application:  name: dubbo-consumer  # 消费者应用名称  qos-enable: false     # 禁用 QoS(可选)  registry:  address: zookeeper://127.0.0.1:2181  # 注册中心地址(ZooKeeper)  # 如果使用 Nacos 注册中心,可以配置为:  # address: nacos://127.0.0.1:8848  protocol:  name: dubbo  # 使用的协议类型  port: 20882     # 消费者端口(通常不需要配置,Dubbo 会自动分配)  consumer:  check: false  # 是否在启动时检查服务提供者是否存在  timeout: 3000 # 调用超时时间(单位:毫秒)  retries: 2    # 调用失败时的重试次数  loadbalance: random  # 负载均衡策略(random、roundrobin、leastactive 等)  cluster: failover    # 集群容错策略(failover、failfast、failsafe 等)

Snipaste_2025-03-05_22-06-29.png

实例

mapper

@Mapper  
public interface UserMapper extends BaseMapper<User> {}

impl

@DubboService  
@Service  
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {}

启动类

@EnableDubbo  
@SpringBootApplication  
public class UserServiceProviderApplication {  public static void main(String[] args) {  SpringApplication.run(UserServiceProviderApplication.class, args);  }  }

yml

server:  port: 20881  
spring:  datasource:  url: jdbc:mysql://localhost:3306/dubbo?useSSL=false&serverTimezone=UTC  username: root  password: 20050101  driver-class-name: com.mysql.cj.jdbc.Driver  application:  name: dubbo-provider  dubbo:  application:  name: dubbo-provider  qos-enable: true  registry:  address: zookeeper://127.0.0.1:2181  protocol:  name: dubbo  port: 20880

Snipaste_2025-03-05_22-23-11.png

启动后可以在服务关系中看见他们模块之间的关系
也可以去调用接口测试接口的使用

Snipaste_2025-03-05_22-25-34.png

相关文章:

Dubbo+Zookeeper

Apache ZooKeeper 通过当前页面下载Zookeeper 在这里启动zookeeper 可以根据这个页面简单学习一下&#xff0c;但是没有集成mysql&#xff0c;也会出现一些报错&#xff0c;且在这之后我们要使用的管理页面是vue的dubbo-admin dubbo学习三&#xff1a;springboot整合dubbozo…...

从源到目标:深度学习中的迁移学习与领域自适应实践

引言&#xff1a;数据驱动的智能时代与迁移挑战 在深度学习快速发展的今天&#xff0c;模型训练对数据量和质量的依赖成为核心瓶颈。面对新场景时&#xff0c;标注数据不足、数据分布差异等问题常导致模型性能骤降。迁移学习&#xff08;Transfer Learning&#xff09;与领域自…...

从厨电模范到数字先锋,看永洪科技如何助力方太集团开启数字新征程

在数字化洪流席卷全球的宏大背景下&#xff0c;企业转型升级的紧迫性与重要性日益凸显&#xff0c;成为驱动行业进步的关键引擎。在这一波澜壮阔的转型浪潮中&#xff0c;方太集团——厨电领域的璀璨明珠&#xff0c;以其前瞻性的战略视野和不懈的创新精神&#xff0c;携手数据…...

Redis大key

Redis大key基本概念&#xff0c;影响 Redis 大 key 指在 Redis 中存储了大量数据的键&#xff0c;它会对 Redis 的性能和内存管理产生影响。 大key的定义与value的大小和元素数量有关&#xff0c;但这个定义并不是绝对的&#xff0c;而是相对的&#xff0c;具体取决于系统的使用…...

在 Apache Tomcat 中,部署和删除项目

在 Apache Tomcat 中&#xff0c;部署和删除 WAR 文件是常见的操作。以下是详细步骤&#xff1a; 1. 删除 WAR 文件 (1) 停止应用 进入 Tomcat 的管理界面&#xff08;默认地址&#xff1a;http://localhost:8080/manager/html&#xff09;。 找到需要删除的应用&#xff0c;…...

前端基础之组件自定义事件

我们可以通过使用给组件绑定事件&#xff0c;当组件触发该事件时&#xff0c;就能进行值得返回 我们可以使用v-on属性来给子组件绑定自定义事件&#xff0c;此时该事件就会存在vc中&#xff0c;然后通过this.$emit来触发绑定的事件&#xff0c; 这样就能实现不需要app.vue来给子…...

在 Docker 中,无法直接将外部多个端口映射到容器内部的同一个端口

Docker 的端口映射是一对一的&#xff0c;即一个外部端口只能映射到容器内部的一个端口。 1. 为什么不能多对一映射&#xff1f; 端口冲突&#xff1a; 如果外部多个端口映射到容器内部的同一个端口&#xff0c;Docker 无法区分外部请求应该转发到哪个内部端口&#xff0c;会…...

基于DeepSeek(本地部署)和RAGFlow构建个人知识库

总结自视频&#xff08;很强的小姐姐视频&#xff0c;讲解清晰明了&#xff09;&#xff1a;【知识科普】【纯本地化搭建】【不本地也行】DeepSeek RAGFlow 构建个人知识库_哔哩哔哩_bilibili 1. 背景 deepseek官方网页版也虽然很强&#xff0c;能够满足绝大部分需求&#xf…...

学习工具的一天之(burp)

第一呢一定是先下载 【Java环境】&#xff1a;Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…...

2025-03-05 学习记录--C/C++-PTA 习题5-8 空心的数字金字塔

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、解题步骤 ⭐️ 下面以n5举例&#xff1a;&#x1f98b; 第1步 &#x1f380;、外层循环&#xff08;从1到…...

C++课程设计【宿舍管理查询软件】

宿舍管理查询软件 一、题目描述二、源码以及说明宿舍管理查询软件设计与实现1. 系统设计思路1.1 功能需求1.2 数据结构2. 系统实现3. 代码说明3.1 数据结构3.2 功能实现3.3 文件存储4. 示例运行输入输出5. 总结其他QT文章推荐一、题目描述 (一)问题描述 为宿舍管理人员编写一…...

Stable Diffusion模型采样方法与参数配置详解(含步数及画风适配表)

Stable Diffusion模型采样方法与参数配置详解&#xff08;含步数及画风适配表&#xff09; 以下为当前主流采样方法的性能对比及参数配置建议&#xff0c;结合显存占用、生成速度、适用场景等维度分类总结&#xff1a; 一、采样方法对比表 采样方法推荐步数显存占用生成速度…...

极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【三】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

vue+neo4j 四大名著知识图谱问答系统

编号: D039 视频 vueneo4j四大名著知识图谱问答系统 技术架构 vuedjangoneo4jmysql技术实现 功能模块图 问答&#xff1a;基于知识图谱检索、支持图多跳、显示推理路径 姜维的师傅的主公的臣是谁&#xff1a; 马谡 知识图谱&#xff1a;四大名著总共4个图谱 红楼梦图谱 …...

【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别

1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务&#xff0c; 智能体自动生成完成任务所需步骤&#xff0c; 执行相应动作&#xff08;例如选择并调用工具&#xff09;&#xff0c; 直到任务完成。 2. 先定义工具&#xff1a;Tools 可以是一个函数或三方 API也…...

基于eRDMA实测DeepSeek开源的3FS

DeepSeek昨天开源了3FS分布式文件系统, 通过180个存储节点提供了 6.6TiB/s的存储性能, 全面支持大模型的训练和推理的KVCache转存以及向量数据库等能力, 每个客户端节点支持40GB/s峰值吞吐用于KVCache查找. 发布后, 我们在阿里云ECS上进行了快速的复现, 并进行了性能测试, ECS…...

Vue的简单入门 三

目录 侦听器 watch 注意 表单输入绑定 v-model v-model修饰符​编辑 lazy number Trim 模板引用 组件组成 组件引用三步走 组件的嵌套关系 header Main Aside Aritice Item App.vue组件引入三个子组件 组件的注册方式 全局注册组件的方法 (1) Vue 2 语…...

指纹细节提取(Matlab实现)

指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一&#xff0c;具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取&#xff0c;即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点&#xff0c;是…...

使用wifi连接手机adb进行调试|不使用数据线adb调试手机|找应用错误日志和操作日志

手机在开发者选项里要开启无线调试 在手机设置中查看WiFi的IP地址 设置 -> WLAN -> 已连接的WiFi -> IP地址 使用手机的IP地址连接 adb connect 192.168.1.12:xxxxx 检查连接状态 adb devices 断开特定设备 adb disconnect 192.168.x.x:xxxxx 断开所有设备 …...

STM32——串口通信 UART

一、基础配置 Universal Asynchronous Receiver Transmitter 异步&#xff0c;串行&#xff0c;全双工 TTL电平 &#xff1a;高电平1 低电平0 帧格式&#xff1a; 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD&#xff0c;…...

PHP fastadmin 学习

安装php环境安装mysql插件 修改 php.ini下载 phpstudy、fastadmin 错误 安装FastAdmin could not find driver 参考链接 安装插件 创建1.php <? phpinfo(); ?>运行 http://127.0.0.1/1.php 查看 POD 页面访问404 伪静态 Apache <IfModule mod_rewrite.c> O…...

Autojs无线连接vscode方法

1.获得电脑的IP 在电脑的CMD界面输入 ipconfig 然后找到ipv4的那一行&#xff0c;后面的即是你的电脑IP地址 2.打开vscode的autojs服务 安装autojs插件 在vscode界面按下ctrlshiftp 输入autojs 找到 点击 之后打开手机上的autojs 之后输入刚刚电脑上的地址 可以看到vsc…...

面试基础--MySQL SQL 优化深度解析

MySQL SQL 优化深度解析&#xff1a;EXPLAIN、索引优化与分库分表实践 引言 在互联网大厂的高并发场景下&#xff0c;数据库的性能优化是至关重要的。MySQL 作为最流行的关系型数据库之一&#xff0c;SQL 查询的性能直接影响了系统的响应时间和吞吐量。本文将深入探讨 MySQL …...

python之爬虫入门实例

链家二手房数据抓取与Excel存储 目录 开发环境准备爬虫流程分析核心代码实现关键命令详解进阶优化方案注意事项与扩展 一、开发环境准备 1.1 必要组件安装 # 安装核心库 pip install requests beautifulsoup4 openpyxl pandas# 各库作用说明&#xff1a; - requests&#x…...

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存&#xff0c;保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端&#xff0c;也是一个服务器&#xff0c;是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…...

大白话面试前的准备工作

面试前的准备工作非常重要&#xff0c;就像打仗前要做好各种准备一样&#xff0c;主要包括以下几个方面&#xff1a; 了解公司和岗位 公司情况&#xff1a;要知道这个公司是做什么的&#xff0c;比如是生产电子产品的&#xff0c;还是提供互联网服务的。还要了解它在行业里的…...

Dify 开源大语言模型应用开发平台使用(一)

文章目录 一、创建锂电池专业知识解答应用1.1 应用初始化 二、核心功能模块详解2.1 知识库构建2.2 工作流与节点编排节点类型说明工作流设计示例&#xff1a;锂电池选型咨询 2.3 变量管理 三、测试与调试3.1 单元测试3.2 压力测试3.3 安全验证 四、部署与优化建议4.1 部署配置4…...

天津大学02-深度解读DeepSeek:部署、使用、安全【文末附下载链接】

大模型风险与不当用例——价值观错位 大模型与人类价值观、期望之间的不一致而导致的安全问题&#xff0c;包含&#xff1a;• 社会偏见&#xff08;Social Bias&#xff09;LLM在生成文本时强化对特定社会群体的刻板印象&#xff0c;例如将穆斯林与恐怖主义关联&#xff0c;或…...

SPI驱动(三) -- SPI设备树处理过程

文章目录 参考资料&#xff1a;一、SPI设备树节点构成二、SPI设备树示例2.1 SPI控制器节点属性2.2 SPI设备节点属性 三、SPI设备树处理过程四、总结 参考资料&#xff1a; 内核头文件&#xff1a;include\linux\spi\spi.h内核文档&#xff1a;Documentation\devicetree\bindin…...

【RAG 篇】万字长文:向量数据库选型指南 —— Milvus 与 FAISS/Pinecone/Weaviate 等工具深度对比

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 文章目录 向量数据库的核心价值主流工具横向对比 FAISS:Meta 的高效检索引擎Pinecone:全托管商业…...