dubbo搭建过程中,请注意各依赖版本号,如果不知道版本对应,请跟下文保持一致,否则可能出现冲突,在你看到此文章之前,请确保你的zookeeper已经搭建完毕
选择maven,你也可以选择spirng initializr创建

我的父工程的名字是 dubbo_ex 根据自己的需要更改即可

创建完成之后,会得到一个只有src目录的项目,删除src(父工程不需要写代码)
pom中需要注意的注释,已经在下面代码中进行注释
给小白提一嘴:统一的包管理,
pom.xml
- <project xmlns="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.0modelVersion>
-
- <parent>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-parentartifactId>
- <version>2.3.12.RELEASEversion>
- <relativePath/>
- parent>
- <groupId>com.fmhgroupId>
- <artifactId>dubbo_exartifactId>
- <packaging>pompackaging>
- <version>1.0-SNAPSHOTversion>
-
- <modules>
- <module>dubbo-apimodule>
- <module>proceduremodule>
- <module>consumermodule>
- modules>
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- <java.version>1.8java.version>
- <zk.version>3.6.2zk.version>
- <dubbo.version>2.7.7dubbo.version>
- <curator.framework.version>5.1.0curator.framework.version>
- <curator.recipes.version>5.1.0curator.recipes.version>
- properties>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.dubbogroupId>
- <artifactId>dubbo-spring-boot-starterartifactId>
- <version>${dubbo.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.zookeepergroupId>
- <artifactId>zookeeperartifactId>
- <version>${zk.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-frameworkartifactId>
- <version>${curator.framework.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-recipesartifactId>
- <version>${curator.recipes.version}version>
- dependency>
- dependencies>
- dependencyManagement>
-
- project>

此处你也可以选择spring init,我们选择maven工程

注意此处截图圈红的位置

pom.xml (该pom什么也没改变,该模块无需添加dubbo等依赖)
- <project xmlns="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">
- <parent>
- <artifactId>dubbo_exartifactId>
- <groupId>com.fmhgroupId>
- <version>1.0-SNAPSHOTversion>
- parent>
- <modelVersion>4.0.0modelVersion>
-
- <artifactId>dubbo-apiartifactId>
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
-
- project>
我们在刚刚创建的模块中,随意写一个接口,如下图:

创建步骤跟第二步一样的步骤,不再演示,名字随意
pom.xml
你的pom文件需要修改一下引入的第二步创建的模块,下面代码中已经给出了注释,我们的名字不同
- <project xmlns="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">
- <parent>
- <artifactId>dubbo_exartifactId>
- <groupId>com.fmhgroupId>
- <version>1.0-SNAPSHOTversion>
- parent>
- <modelVersion>4.0.0modelVersion>
-
- <artifactId>procedureartifactId>
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starterartifactId>
- dependency>
- <dependency>
- <groupId>org.apache.zookeepergroupId>
- <artifactId>zookeeperartifactId>
- dependency>
-
-
-
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-frameworkartifactId>
- dependency>
-
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-recipesartifactId>
- dependency>
-
-
- <dependency>
- <groupId>com.fmhgroupId>
- <artifactId>dubbo-apiartifactId>
- <version>1.0-SNAPSHOTversion>
- dependency>
- <dependency>
- <groupId>org.apache.dubbogroupId>
- <artifactId>dubbo-spring-boot-starterartifactId>
- dependency>
- dependencies>
- project>
application.properties
-
- server.port=8082
- ## 注册中心 zookeeper的地址
- dubbo.registry.address=zookeeper://127.0.0.1:2181
-
- dubbo.application.name=provider-ticker
- # dubbo扫描的包
- dubbo.scan.base-packages=com.fmh.service
-
- dubbo.registry.timeout=20000
-
- dubbo.protocol.name=dubbo
- dubbo.protocol.port=20880
实现接口,注意导入的包(@Component可以替换为@Service,不过要注意引入的包是否是spring的)
- @Component
- @DubboService(version = "1.0")
- public class UserServiceImpl implements UserService {
- @Override
- public String hello(String str) {
- return str;
- }
- }
springboot启动类
这个代码就不给出了
至此,服务提供者创建完毕
跟 2小节一样的步骤
pom.xml
注意引入自己的模块
- <project xmlns="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">
- <parent>
- <artifactId>dubbo_exartifactId>
- <groupId>com.fmhgroupId>
- <version>1.0-SNAPSHOTversion>
- parent>
- <modelVersion>4.0.0modelVersion>
-
- <artifactId>consumerartifactId>
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>com.fmhgroupId>
- <artifactId>dubbo-apiartifactId>
- <version>1.0-SNAPSHOTversion>
- dependency>
- <dependency>
- <groupId>org.apache.dubbogroupId>
- <artifactId>dubbo-spring-boot-starterartifactId>
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starterartifactId>
- dependency>
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-frameworkartifactId>
- dependency>
- <dependency>
- <groupId>org.apache.curatorgroupId>
- <artifactId>curator-recipesartifactId>
- dependency>
- <dependency>
- <groupId>org.apache.zookeepergroupId>
- <artifactId>zookeeperartifactId>
-
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
-
-
- dependencies>
- project>
application.properties 配置文件
-
- server.port=8083
- dubbo.registry.address=zookeeper://127.0.0.1:2181
-
- dubbo.application.name=provider-consumer
-
- dubbo.scan.base-packages=com.fmh.controller
-
- dubbo.registry.timeout=20000
-
- dubbo.protocol.name=dubbo-consumer
- dubbo.protocol.port=20881
创建controller

- @RestController
- public class UserController {
-
- @DubboReference(version = "1.0")
- private UserService userService;
-
- @GetMapping("/user")
- public String user() {
- return userService.hello("只因你太美");
- }
- }
创建springboot启动类(这个代码就不需要了吧,上面有给出哦)
然后启动项目
这个提示不用管,是因为zk或者dubbo没有排除log4j的组件,不影响
用postman调用接口,即可看到结果
另外 dubbo-admin可以可视化看到接口注册情况,看反馈情况决定是否更新,感谢您的阅读!
如果有问题,欢迎留言