dubbo使用总结
总结
- dubbo 是一个RPC远程接口调用,分为服务端、注册容器、消费端、监控端
- 服务端将服务注册到注册容器,消费端到注册容器订阅消费
- 通过版本号码区分不同环境的服务
- 1.0.0.daily 测试环境
- 1.0.0.local-xx 本机服务
一个机器上启动两个IDEA服务进行接口联调
- 两个项目部署在同一个tomcat中,启动时会出错误,一个项目服务停止运行;
- idea Unable to open debugger port (127.0.0.1:58233): java.net.SocketException “socket closed”
- 解决:修改其中一个IDEA中 tomcat 中的端口号、JVM 端口号
- 启动两个项目后,一个项目提供服务,一个项目消费服务:此时报错:java.io.IOException: Can not lock the registry cache file
- 原因:dubbo 在本地生成一个 cache 文件;两个项目都会去生成并管理此文件,发生冲突
- 网上的解决方案,找到配置文件中定义文件位置的配置并修改,两个项目指向不同的目录
- dubbo
- DUBBO 使用问题记录
- 再次运行,报错:DUBBO java.net.NoRouteToHostException: No route to host: no further information;未解决
- 本机起两个服务调试,失败,后来,由同事启动其中一个项目来访问我的另一个项目进行调试
- 开发过程中调试问题,显示调用测试环境的某个RPC服务失败,超时;原因在于注册在注册容器中的服务是通过不同的版本号码进行区分不同环境或者不同开发人员注册的服务,但如果开发人员注册本地服务的时候写成了测试环境的版本号,那么启动本地服务后,后者的服务会覆盖前者的注册服务,导致注册到注册容器的服务变成了开发人员的本地服务;问题的原因就是其他开发团队在联调服务的时候写了错误的版本号码
编程规范
- dubbo接口三部分:
- 提供RPC接口
- 本项目对外的注册接口 provider.xml
- 引用项目的消费接口 consumer.xml
- 单元测试
- dubbo 注册中心查看是否能够正常注册