dubbo搭建过程中,请注意各依赖版本号,如果不知道版本对应,请跟下文保持一致,否则可能出现冲突,在你看到此文章之前,请确保你的zookeeper已经搭建完毕
选择maven,你也可以选择spirng initializr创建
我的父工程的名字是 dubbo_ex 根据自己的需要更改即可
创建完成之后,会得到一个只有src目录的项目,删除src(父工程不需要写代码)
pom中需要注意的注释,已经在下面代码中进行注释
给小白提一嘴:统一的包管理,
pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.3.12.RELEASE
com.fmh
dubbo_ex
pom
1.0-SNAPSHOT
dubbo-api
procedure
consumer
8
8
1.8
3.6.2
2.7.7
5.1.0
5.1.0
org.apache.dubbo
dubbo-spring-boot-starter
${dubbo.version}
org.apache.zookeeper
zookeeper
${zk.version}
org.apache.curator
curator-framework
${curator.framework.version}
org.apache.curator
curator-recipes
${curator.recipes.version}
此处你也可以选择spring init,我们选择maven工程
注意此处截图圈红的位置
pom.xml (该pom什么也没改变,该模块无需添加dubbo等依赖)
dubbo_ex
com.fmh
1.0-SNAPSHOT
4.0.0
dubbo-api
8
8
我们在刚刚创建的模块中,随意写一个接口,如下图:
创建步骤跟第二步一样的步骤,不再演示,名字随意
pom.xml
你的pom文件需要修改一下引入的第二步创建的模块,下面代码中已经给出了注释,我们的名字不同
dubbo_ex
com.fmh
1.0-SNAPSHOT
4.0.0
procedure
8
8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter
org.apache.zookeeper
zookeeper
org.apache.curator
curator-framework
org.apache.curator
curator-recipes
com.fmh
dubbo-api
1.0-SNAPSHOT
org.apache.dubbo
dubbo-spring-boot-starter
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
注意引入自己的模块
dubbo_ex
com.fmh
1.0-SNAPSHOT
4.0.0
consumer
8
8
com.fmh
dubbo-api
1.0-SNAPSHOT
org.apache.dubbo
dubbo-spring-boot-starter
org.springframework.boot
spring-boot-starter
org.apache.curator
curator-framework
org.apache.curator
curator-recipes
org.apache.zookeeper
zookeeper
org.springframework.boot
spring-boot-starter-web
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的组件,不影响
另外 dubbo-admin可以可视化看到接口注册情况,看反馈情况决定是否更新,感谢您的阅读!
如果有问题,欢迎留言