对的,你说的没错,在Spring Boot项目中,Dubbo消费方也同样不需要配置Dubbo协议和Dubbo端口号,Dubbo会自动从Dubbo注册中心获取提供方的IP和端口号进行通信。但是,Dubbo消费方需要在application.properties或application.yml文件中配置
# Dubbo注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
这里的dubbo.registry.address属性配置的就是Dubbo注册中心的地址,Spring Boot启动Dubbo消费方时,会自动连接并从注册中心获取提供方的IP和端口号进行通信。因此,即使不配置Dubbo协议和Dubbo端口号,Dubbo消费方仍能够正常调用Dubbo提供方的服务。
不知道你这个问题是否已经解决, 如果还没有解决的话:Dubbo 目前支持如下 9 种通信协议:
dubbo://
,默认协议。参见rest://
,贡献自 Dubbox ,目前最合适的 HTTP Restful API 协议。参见 《Dubbo 用户指南 —— rest://》 。rmi://
,参见 《Dubbo 用户指南 —— rmi://》 。webservice://
,参见 《Dubbo 用户指南 —— webservice://》 。hessian://
,参见 《Dubbo 用户指南 —— hessian://》 。thrift://
,参见 《Dubbo 用户指南 —— thrift://》 。memcached://
,参见 《Dubbo 用户指南 —— memcached://》 。redis://
,参见 《Dubbo 用户指南 —— redis://》 。http://
,参见 《Dubbo 用户指南 —— http://》 。注意,这个和我们理解的 HTTP 协议有差异,而是 Spring 的 HttpInvoker 实现。实际上,社区里还有其他通信协议正处于孵化:
jsonrpc://
,对应 Github 仓库为 https://github.com/apache/incubator-dubbo-rpc-jsonrpc ,来自千米网的贡献。😈 每一种通信协议的实现,在 《精尽 Dubbo 源码解析》 中,都有详细解析。
另外,在 《Dubbo 用户指南 —— 性能测试报告》 中,官方提供了上述协议的性能测试对比。