Dubbo服务提供者可以配置多协议,dubbo支持的协议可以查看dubbo文档,不同协议适用不同的场景。
普通服务使用dubbo协议,文件传输使用hessian协议
提供者依赖
<!--dubbo hessian协议-->
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>${hessian.version}</version>
</dependency>
<!--dubbo hessian协议使用Jetty容器-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>
注意:消费者同样需要引入以上依赖,否则会出现没有可获得的提供者异常
提供者配置
#多协议
dubbo:
protocols:
dubbo:
name: dubbo
port: 20082
server: netty
default: true
hessian:
name: hessian
port: 20182
server: jetty
default: false
这样配置的话,@DubboService注解不指定protocol默认使用dubbo协议,@DubboService(protocol = “hessian”)注解的服务会使用hessian协议
通过Dubbo-admin查看服务暴露的端口号
消费者引用服务
//消费者引用用服务这个protocol属性可加可不加
@DubboReference(protocol = "hessian")