1.dubbo多协议支持
某些场景下,可能接口是使用的老的协议去发布的,此时希望接口能够以一种新的协议去发布,老的服务按照老的协议去调用,新的服务按照新的协议去调用 而dubbo服务就可以支持发布多种协议,如 dubbo / hessian / thrift / grps http2.0/ protobuff, rest 等,如果要切换某种协议,只需要添加该协议对应的依赖包即可
以rest协议为例,它是基于JAX-RS 来实现的,dubbo发布rest服务是基于 RESTEasy的,同时需要容器的支持, 先修改 配置文件,指定服务发布的协议:
然后在服务实现类上面指定发布的协议:
@DubboService(registry = {“shanghai”, “nanjing”}, protocol = {“dubbo”,“rest”}) 注解中配置protocol = {“dubbo”,“rest”} , 那么SayHelloServiceImpl 这个类会发布基于dubbo协议和rest协议的服务,既可以通过dubbo协议来访问服务,也可以通过rest协议来访问服务,但是rest协议还需要额外加个配置:
(1) pom依赖
<!-- 基于resteasy -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.13.0.Final</version>
</dependency>
<dependency>