这个项目使用spring-boot,mybatis以及分页组件pageHelper开发dubbox
- 首先对我们应用进行分层:
-
web层
- api层(consumer)
- controller(consumer)
- filter
- view
-
业务接口层
-
接口定义层
-
provider业务实现
-
持久化层
- mysql orm
- mongbd
- redis
- 关键点
- Annotation放在接口类还是实现类
在一般应用中,我们建议将annotation放到服务实现类,这样annotation和java实现代码位置更接近,更便于开发和维护。 另外更重要的是,我们一般倾向于避免对接口的污染,保持接口的纯净性和广泛适用性。
- 关键点,还可以运行dobbo提供的dubbo-admin进行监控消费者与服务者。dubbo-admin地址:https://github.com/UniqueDong/dubbo-admin.git
But
如果我们要用dubbo直接开发的消费端来访问此服务,则annotation必须放到接口上。
如果接口和实现类都同时添加了annotation,则实现类的annotation配置会生效,接口上的annotation被直接忽略。
- 场景1:非dubbo的消费端调用dubbo的REST服务
- 场景2:dubbo消费端调用dubbo的REST服务
- 场景3:dubbo的消费端调用非dubbo的REST服务
- 启动:首先运行zookeper注册,然后分别运行提供者,消费者,因为使用了springBoot,可直接运行Application.Main方法即可
- 我们大多数应用都是内部调用,所以在provider层提供rest接口的必要性这个需要考虑?
- provider层使用rest协议时,最好使用tomcat做内嵌的servlet容器
<dubbo:protocol name="rest" port="9090" server="tomcat" />
-
每个接口使用Annotation声明时选择使用什么协议进行传输,同时在dubbo配置里可以声明每个protocol
-
多读dubbo和dubbox的文档,网上的文档都是入门的还不如自己看文档
- Fork it
- Create you feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
- v0.1.0 初始化版本
this gem is released under the MIT License.