dubbo的9种协议
dubbo共有9种协议
dubbo中支持9种协议,通过这9种协议进行调用。
dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis、memcache、rest等多种协议,但是Dubbo官网是推荐我们使用dubbo协议的。
dubbo对于9种协议的支持来自于SPI扩展机制,是SPI扩展机制在dubbo中的一个重要应用。
1 | filter=org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper |
https://blog.csdn.net/xiaojin21cen/article/details/79834222
介绍
dubbo的9种协议其实可以分为三种,一种时自定义的应用层协议,另一种是对HTTP封装的应用层协议,最后就是将缓存作为注册中心的协议。
第一种直接使用传输层TCP通道,而第二种则通过HTTP协议使用TCP通道。
自定义应用层协议:
dubbo协议:
缺省协议、单连接、长连接、TCP、NIO异步传输、Hessian 二进制序列化。
常规远程服务方法调用。
传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。rmi协议:java标准远程调用协议。
多连接、短连接、TCP、同步传输、java标准二进制序列化。
常规远程服务方法调用,与原生RMI服务互操作接口。
传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。封装的HTTP:
hessian协议:
多连接、短连接、HTTP、同步传输、Hessian二进制序列化。
传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
页面传输,文件传输,或与原生hessian服务互操作。HTTP:
多连接、短连接、HTTP、同步传输、表单序列化。
传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
需同时给应用程序和浏览器JS使用的服务。WebService:
多连接、短连接、HTTP、同步传输、SOAP文本序列化。
系统集成,跨语言调用。rest:
缓存式协议:
redis协议:
memcache协议: