一、启动zookeeper服务
dubbo+zookeeper 架构下,zookeeper只是用来做服务注册发现的注册中心,所以采用最简单的方式启动服务即可,我本地的环境有docker 就直接采用docker的方式启动了。
启动命令:
1 | docker run -d --name zookeeper -p 2181:2181 -t zookeeper |
启动后可以使用 docker ps
查看运行中的docker容器
二、构建服务提供方
创建maven项目 dubbo-provider
添加依赖:
1 | <parent> |
前两个是springboot需要的包(可以不依赖web) 最后一个是集成springboot和dubbo的,在用这个包之前用了个官方的dubbo-spring-boot-starter
问题挺多,然后找到了这个包,感觉用起来简单一点。
添加基础的接口类 HelloService.java:
1 | public interface HelloService { |
实现类 HelloServiceImpl.java:
1 |
|
注意这里的Service注解使用的是 import com.alibaba.dubbo.config.annotation.Service;
配置文件 application.yml:
1 | server: |
三、构建服务消费方
创建maven项目 dubbo-consumer
添加依赖与dubbo-provider
项目一致
添加基础的接口类 HelloService.java:
1 | public interface HelloService { |
添加api接口 HelloController.java:
1 |
|
配置文件 application.yml:
1 | server: |
四、测试调用
- 启动
dubbo-provider
项目 - 启动
dubbo-consumer
项目 - 打开浏览器访问
http://localhost:8033/hello
正常情况会输出 hello ixx
五、备注
这只是一个简单的demo示例,要完善的地方还有很多,比如应该把 HelloService 抽离到一个独立的api项目 大家都依赖api项目就不用在每个项目里都写HelloService了
现在这样写的话要注意两个项目中的HelloService类所在包的路径要一致,否则不能注入。
项目已打包放在了github上,项目地址: https://github.com/iuv/dubbo-demo
本文链接: http://blog.jisuye.com/2018/09/07/dubbo-demo/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!