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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
filter=org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper
listener=org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper

mock=org.apache.dubbo.rpc.support.MockProtocol
dubbo=org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol
injvm=org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol
rmi=org.apache.dubbo.rpc.protocol.rmi.RmiProtocol
hessian=org.apache.dubbo.rpc.protocol.hessian.HessianProtocol
http=org.apache.dubbo.rpc.protocol.http.HttpProtocol

org.apache.dubbo.rpc.protocol.webservice.WebServiceProtocol
thrift=org.apache.dubbo.rpc.protocol.thrift.ThriftProtocol
memcached=org.apache.dubbo.rpc.protocol.memcached.MemcachedProtocol
redis=org.apache.dubbo.rpc.protocol.redis.RedisProtocol
rest=org.apache.dubbo.rpc.protocol.rest.RestProtocol

registry=org.apache.dubbo.registry.integration.RegistryProtocol

qos=org.apache.dubbo.qos.protocol.QosProtocolWrapper

https://blog.csdn.net/xiaojin21cen/article/details/79834222


介绍

  dubbo的9种协议其实可以分为三种,一种时自定义的应用层协议,另一种是对HTTP封装的应用层协议,最后就是将缓存作为注册中心的协议。
  第一种直接使用传输层TCP通道,而第二种则通过HTTP协议使用TCP通道。

自定义应用层协议:

  1. dubbo协议:

    缺省协议、单连接、长连接、TCP、NIO异步传输、Hessian 二进制序列化。
    常规远程服务方法调用。
    传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。

  2. rmi协议:java标准远程调用协议。

    多连接、短连接、TCP、同步传输、java标准二进制序列化。
    常规远程服务方法调用,与原生RMI服务互操作接口。
    传入传出参数数据包大小混合,消费者与提供者个数差不多,可传文件。

    封装的HTTP:

  3. hessian协议:

    多连接、短连接、HTTP、同步传输、Hessian二进制序列化。
    传入传出参数数据包较大,提供者比消费者个数多,提供者压力较大,可传文件。
    页面传输,文件传输,或与原生hessian服务互操作。

  4. HTTP:

    多连接、短连接、HTTP、同步传输、表单序列化。
    传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。
    需同时给应用程序和浏览器JS使用的服务。

  5. WebService:

    多连接、短连接、HTTP、同步传输、SOAP文本序列化。
    系统集成,跨语言调用。

  6. rest:

    缓存式协议:

  7. redis协议:

  8. memcache协议: