简历内容准备

简历内容准备 一、安装并启动zookeeper下载并解压zookeeper,本文以apache-zookeeper-3.8.6-bin为例1、将conf目录下的zoo_sample.cfg修改为zoo.cfg2、新建目录D:\Program Files\apache-zookeeper-3.8.6-bin\data并将zoo.cfg中的dataDir修改为D:\Program Files\apache-zookeeper-3.8.6-bin\data3、编辑 Zookeeper 的配置文件conf/zoo.cfg在末尾添加一行如果不加可能会显示8080端口被占用admin.serverPort80814、启动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)projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.atzrb/groupIdartifactIddubbo-demo/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingmodulesmoduledubbo-demo-api/modulemoduledubbo-demo-provider/modulemoduledubbo-demo-consumer/module/modulesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.3.4/versionrelativePath//parentpropertiesjava.version17/java.versiondubbo.version3.3.2/dubbo.versionspring-framework.version6.1.13/spring-framework.version/propertiesdependencyManagementdependenciesdependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-bom/artifactIdversion${dubbo.version}/versiontypepom/typescopeimport/scope/dependency!-- Override Spring Framework version polluted by dubbo-bom --!-- Spring Boot 3.3.4 requires Spring Framework 6.1.x --dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring-framework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring-framework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aop/artifactIdversion${spring-framework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-expression/artifactIdversion${spring-framework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jcl/artifactIdversion${spring-framework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion${spring-framework.version}/version/dependency/dependencies/dependencyManagement/project3、API模块 (dubbo-demo-api)3.1 pom文件projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.atzrb/groupIdartifactIddubbo-demo/artifactIdversion1.0-SNAPSHOT/version/parentartifactIddubbo-demo-api/artifactIdpackagingjar/packagingpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties/project3.2 DemoService.javapackagecom.atzrb.api;publicinterfaceDemoService{StringsayHello(Stringname);}4、服务提供者 (dubbo-demo-provider)4.1pom.xmlprojectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.atzrb/groupIdartifactIddubbo-demo/artifactIdversion1.0-SNAPSHOT/version/parentartifactIddubbo-demo-provider/artifactIdpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- Spring Boot Starter --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!-- Dubbo Spring Boot Starter --dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactId/dependency!-- Zookeeper Curator5 StarterZookeeper Server 3.5.x 及以上版本使用 --dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-zookeeper-curator5-spring-boot-starter/artifactId/dependency!-- API 模块 --dependencygroupIdcom.atzrb/groupIdartifactIddubbo-demo-api/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies/project4.2application.ymldubbo:application:name:dubbo-demo-providerregistry:address:zookeeper://127.0.0.1:2181protocol:name:dubboport:20880scan:base-packages:com.atzrb4.3DubboProviderApplication.javaSpringBootApplicationEnableDubbopublicclassDubboProviderApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DubboProviderApplication.class,args);System.out.println(Dubbo Provider started successfully!);}}4.4DemoServiceImpl.javaDubboServicepublicclassDemoServiceImplimplementsDemoService{OverridepublicStringsayHello(Stringname){returnHello, name! (from Dubbo Provider);}}5、服务消费者 (dubbo-demo-consumer)5.1pom.xmlprojectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.atzrb/groupIdartifactIddubbo-demo/artifactIdversion1.0-SNAPSHOT/version/parentartifactIddubbo-demo-consumer/artifactIdpackagingjar/packagingpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- Spring Boot Starter --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!-- Dubbo Spring Boot Starter --dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-spring-boot-starter/artifactId/dependency!-- Zookeeper Curator5 Starter --dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo-zookeeper-curator5-spring-boot-starter/artifactId/dependency!-- API 模块 --dependencygroupIdcom.atzrb/groupIdartifactIddubbo-demo-api/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies/project6.2application.ymldubbo:application:name:dubbo-demo-consumerregistry:address:zookeeper://127.0.0.1:21816.3DubboConsumerApplication.javaSpringBootApplicationEnableDubbopublicclassDubboConsumerApplication{publicstaticvoidmain(String[]args){ConfigurableApplicationContextcontextSpringApplication.run(DubboConsumerApplication.class,args);DemoConsumerRunnerrunnercontext.getBean(DemoConsumerRunner.class);runner.run();}}6.4DemoConsumerRunner.javaComponentpublicclassDemoConsumerRunner{DubboReferenceprivateDemoServicedemoService;publicvoidrun(){StringresultdemoService.sayHello(Dubbo Learner);System.out.println( Consumer received: result );}}