本文主要阐述,Dubbo 多协议、单协议多端口实现
环境
dubbo 2.6.5、2.7.0
dubbo-spring-boot-starter 0.2.0
多协议实现
在 application.yml 中添加如下配置
首先要开启多协议的配置开关,再通过 protocols 指定多协议
1 | dubbo: |
- 开启了多协议之后,可以使用
@Service(protocol = {"dubbo", "rest"})
指定协议类型- 如果不需要多协议,也要明确指定其中一个协议
@Service(protocol = {"dubbo"})
rest.server
可以是servlet
、jetty
、tomcat
、netty
,这里以netty4
为例对比单协议的配置
1
2
3
4
5 > dubbo:
> protocol:
> name: dubbo
> port: 20885
>
如果是单协议配置,不能这样指定协议
@Service(protocol = {"dubbo"})
,否则会报错找不到dubbo compent
要在pom.xml
引入 resteasy
的依赖
1 | <dependency> |
Dubbo Service 指定多个协议
1 | "/user") .ws.rs.Path( |
rest相关的
Path
、GET
、POST
要在接口上配置
验证 rest 服务
1 | curl http://localhost:8080/demo/say-hello?name=forever |
单协议多端口实现
在 application.yml 中添加如下配置
首先要开启多协议的配置开关,再通过 protocols 指定多协议
1 | dubbo: |
Dubbo Service 指定多个协议
1 | import com.alibaba.dubbo.config.annotation.Service; |
@Service 不配置 protocol,默认使用所有协议