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

简历内容准备

一、安装并启动zookeeper

下载并解压zookeeper,本文以apache-zookeeper-3.8.6-bin为例

1、将conf目录下的zoo_sample.cfg修改为zoo.cfg

2、新建目录D:\Program Files\apache-zookeeper-3.8.6-bin\data

并将zoo.cfg中的dataDir修改为D:\Program Files\apache-zookeeper-3.8.6-bin\data

3、编辑 Zookeeper 的配置文件conf/zoo.cfg,在末尾添加一行(如果不加可能会显示8080端口被占用)

admin.serverPort=8081

4、启动zookeeper

# 路径 apache-zookeeper-3.8.6-bin\bin zkServer.md

二、编程Dubbo程序

1、说明文档

## 项目概述 Apache Dubbo 3 + Spring Boot 3 多模块 Maven 项目,演示基于 Zookeeper 注册中心的 RPC 调用。 ## 技术栈 - Java 17, Spring Boot 3.3.4, Dubbo 3.3.2, Spring Framework 6.1.13 - Zookeeper 注册中心(Curator 5 客户端) ## 模块结构 | 模块 | 职责 | |------|------| | `dubbo-demo-api` | 共享 API 接口定义(`DemoService`),无 Spring/Dubbo 依赖 | | `dubbo-demo-provider` | 服务提供者,`@DubboService` 暴露接口实现 | | `dubbo-demo-consumer` | 服务消费者,`@DubboReference` 引用远程服务 | ## 项目结构明细 dubbo-demo/ ├── pom.xml # 父POM,管理依赖版本和模块 ├── dubbo-demo-api/ # 公共API模块 │ ├── pom.xml │ └── src/main/java/com/atzrb/api/ │ └── DemoService.java # 服务接口 ├── dubbo-demo-provider/ # 服务提供者 │ ├── pom.xml │ ├── src/main/java/com/atzrb/ │ │ ├── DubboProviderApplication.java │ │ └── DemoServiceImpl.java │ └── src/main/resources/ │ └── application.yml └── dubbo-demo-consumer/ # 服务消费者 ├── pom.xml ├── src/main/java/com/atzrb/ │ ├── DubboConsumerApplication.java │ └── DemoConsumerRunner.java └── src/main/resources/ └── application.yml ## 启动与运行 **启动顺序:Zookeeper → Provider → Consumer** ### parent pom.xml 的 Spring 版本覆写 `dubbo-bom` 会引入不兼容的 Spring Framework 版本,父 POM 在 `dependencyManagement` 中显式将 `spring-core`、`spring-context`、`spring-beans`、`spring-aop`、`spring-expression`、`spring-jcl`、`spring-context-support` 锁定到 6.1.13。新增 Spring 依赖时需检查是否需要同样覆写。

2、父POM (pom.xml)

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.atzrb</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>dubbo-demo-api</module><module>dubbo-demo-provider</module><module>dubbo-demo-consumer</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/></parent><properties><java.version>17</java.version><dubbo.version>3.3.2</dubbo.version><spring-framework.version>6.1.13</spring-framework.version></properties><dependencyManagement><dependencies><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-bom</artifactId><version>${dubbo.version}</version><type>pom</type><scope>import</scope></dependency><!-- Override Spring Framework version polluted by dubbo-bom --><!-- Spring Boot 3.3.4 requires Spring Framework 6.1.x --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring-framework.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring-framework.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring-framework.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${spring-framework.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jcl</artifactId><version>${spring-framework.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring-framework.version}</version></dependency></dependencies></dependencyManagement></project>

3、API模块 (dubbo-demo-api)

3.1 pom文件
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.atzrb</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>dubbo-demo-api</artifactId><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>
3.2 DemoService.java
packagecom.atzrb.api;publicinterfaceDemoService{StringsayHello(Stringname);}

4、服务提供者 (dubbo-demo-provider)

4.1pom.xml
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.atzrb</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>dubbo-demo-provider</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Dubbo Spring Boot Starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><!-- Zookeeper Curator5 Starter(Zookeeper Server 3.5.x 及以上版本使用) --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-zookeeper-curator5-spring-boot-starter</artifactId></dependency><!-- API 模块 --><dependency><groupId>com.atzrb</groupId><artifactId>dubbo-demo-api</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
4.2application.yml
dubbo:application:name:dubbo-demo-providerregistry:address:zookeeper://127.0.0.1:2181protocol:name:dubboport:20880scan:base-packages:com.atzrb
4.3DubboProviderApplication.java
@SpringBootApplication@EnableDubbopublicclassDubboProviderApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DubboProviderApplication.class,args);System.out.println("Dubbo Provider started successfully!");}}
4.4DemoServiceImpl.java
@DubboServicepublicclassDemoServiceImplimplementsDemoService{@OverridepublicStringsayHello(Stringname){return"Hello, "+name+"! (from Dubbo Provider)";}}

5、服务消费者 (dubbo-demo-consumer)

5.1pom.xml
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.atzrb</groupId><artifactId>dubbo-demo</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>dubbo-demo-consumer</artifactId><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Dubbo Spring Boot Starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><!-- Zookeeper Curator5 Starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-zookeeper-curator5-spring-boot-starter</artifactId></dependency><!-- API 模块 --><dependency><groupId>com.atzrb</groupId><artifactId>dubbo-demo-api</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
6.2application.yml
dubbo:application:name:dubbo-demo-consumerregistry:address:zookeeper://127.0.0.1:2181
6.3DubboConsumerApplication.java
@SpringBootApplication@EnableDubbopublicclassDubboConsumerApplication{publicstaticvoidmain(String[]args){ConfigurableApplicationContextcontext=SpringApplication.run(DubboConsumerApplication.class,args);DemoConsumerRunnerrunner=context.getBean(DemoConsumerRunner.class);runner.run();}}
6.4DemoConsumerRunner.java
@ComponentpublicclassDemoConsumerRunner{@DubboReferenceprivateDemoServicedemoService;publicvoidrun(){Stringresult=demoService.sayHello("Dubbo Learner");System.out.println("=== Consumer received: "+result+" ===");}}
http://www.jsqmd.com/news/1178235/

相关文章:

  • 【从零开始学Java】写给迷茫的你:Java基础语法与核心机制全解析(系列第一篇)
  • UE5行为树实战:用Selector与Sequence打造会“摸鱼”的NPC守卫
  • 2026马鞍山漏水检测维修口碑榜TOP5权威推荐:正规防水补漏公司甄选-卫生间/厨房/阳台/屋顶/地下室渗漏水精准查漏:房屋防水补漏避坑指南 - 安佳防水
  • MCP协议与AI Agent开发实战:从原理到生产环境部署
  • CMake概述
  • HTML/CSS/JS三小时极简训练:重建前端开发信心
  • 基于OpenClaw与SecGPT-14B的智能代码审计CI/CD集成实战
  • 格兰杰因果检验:时间序列中预测性依赖的统计判据
  • AIAgent可解释性设计:从黑盒到白盒的工程实践与核心方法论
  • TPA3138D2与STM32L162ZE音频系统设计与优化
  • nRF Connect for Desktop 3.9.0 离线安装指南:3步完成Power Profiler等App部署
  • 2026年7月最新青岛万国官方售后服务网点地址及客服电话一览 - 万国中国官方服务中心
  • 2026年7月杭州配电柜维修公司推荐,杭州配电柜维修,杭州配电柜维修厂家选哪家 - 品牌推荐师
  • 被裁半月Java七面进阿里真实面经分享!
  • Win10家庭版重装系统完整指南:从U盘启动到系统优化
  • Claude Code与cc-switch本地部署:第三方API接入与代码生成实践
  • ESXi 7.0/8.0 虚拟机网络配置:4种适配器模式详解与吞吐量测试
  • 2026 企业为什么必须做智能体?从“上不上“到“怎么落“
  • Ubuntu安装桌面,mac电脑远程桌面
  • 刷酸人群面膜哪家好用:蜜妙诗舒缓维稳 - MXyuyu
  • AI Agent工程师实战指南:从RAG到LangGraph的技术架构解析
  • 生产级多维聚合:pandas中可交付的多指标分析实战
  • 【数据之道解惑001】数据体系为什么建不起来——Ownership应始终作为数据治理的目标,坚持长期推进
  • 2026最新昭通本地漏水检测公司本地精选权威推荐:正规防水补漏公司优选口碑TOP5:卫生间/厨房/阳台/飘窗/地下室渗漏水维修师傅上门 - 即刻修防水
  • Pydantic AI构建生产级LLM流式响应系统
  • AI 芯片全景对比:NVIDIA / AMD / 华为,谁在为你的模型“发电“?
  • 《月华剑士》限定品抢购实战:从信息监控到自动化脚本全攻略
  • 20个CC0素材网站2024年可用性实测:Pexels、Coverr等5个无需梯子访问
  • Java基础实操手记:27个可运行示例+错误对照学习
  • Vivado 2018.3 安装避坑指南:3个常见报错分析与Windows/Linux双系统配置