dubbo 使用hession协议开发总结

使用dubbo开发我们默认都是使用dubbo协议的,但是对于项目中的异构系统可能需要调用rpc接口,例如python写的web系统,我们就可以使用基于hession协议的dubbo接口做服务端,python做为客户端进行系统通信。

如果是原有的接口使用dubbo协议,新接口使用hession协议,那就是二者共存,我们需要做好兼容性。

1.<dubbo:application name="xxx"/> 应用名称是服务提供方和接受方都需要配置的

2.做为服务提供者需要提供以下信息:

接口bean信息  <bean id="aaa" class="com.xxx.XXXService"/>

hession协议:<dubbo:protocol name="hession" port="8080" server="servlet"/> 此处使用tomcat

接口service显示指定协议类型:<dubbo:service protocol="hession" interface="com.xxx.XXXService" ref="aaa" path="bbb"


3.由于本质上hession  dubbo是一个servlet,且使用的是容器jetty或者tomcat,我们需要在web.xml配置servlet处理器:

com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet 并且指定处理的路径/bbb

并且需要Listener启动一个上下文,如果本身是web工程我们只需要复用org.springframework.web.context.ContextLoaderListener即可,否则需要自定义listener

这样客户端就可以把服务接口通过host+端口+path暴露出去,客户端就可以来请求服务了


4.客户端调用

StringserviceUrl ="http://localhost:8080/bbb";

HessianProxyFactory factory =newHessianProxyFactory();

XXXService xxxService = (XXXService) factory.create(XXXService.class,serviceUrl);

这样就可以请求服务端的接口了。

当然如果是python客户端,也是有对应hession sdk包的,只需要下载接口调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容