dubbo 支持的7种协议

建议看原文 转自:https://blog.csdn.net/xiaojin21cen/article/details/79834222  

1、dubbo 协议 (默认)
2、rmi 协议
3、hessian 协议
4、http 协议
5、webservice 协议
6、thrift 协议
7、memcached 协议
8、redis 协议
面试题:
Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。

下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。

1、dubbo 协议 (默认)

缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。
连接个数:单连接 连接方式:长连接 传输协议:TCP 传输方式:NIO异步传输 序列化:Hessian 二进制序列化 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。 适用场景:常规远程服务方法调用 1、dubbo默认采用dubbo协议,dubbo协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况  2、他不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。 配置如下: <dubbo:protocol name="dubbo" port="20880" /> <!-- Set default protocol: --> <dubbo:provider protocol="dubbo" /> <~-- Set service protocol --> <dubbo:service protocol="dubbo" /> <!-- Multi port --> <dubbo:protocol id="dubbo1" name="dubbo" port="20880" /> <dubbo:protocol id="dubbo2" name="dubbo" port="20881" />. <!-- Dubbo protocol options: --> <dubbo:protocol name="dubbo" port="9090" server="netty" client="netty" codec=“dubbo”  serialization=“hessian2” charset=“UTF-8” threadpool=“fixed” threads=“100” queues=“0” iothreads=“9”  buffer=“8192” accepts=“1000” payload=“8388608” /> 3、Dubbo协议缺省每服务每提供者每消费者使用单一长连接,如果数据量较大,可以使用多个连接。 <dubbo:protocol name="dubbo" connections="2" /> <dubbo:service connections=”0”>或<dubbo:reference connections=”0”>表示该服务使用JVM共享长连接。(缺省)  <dubbo:service connections=”1”>或<dubbo:reference connections=”1”>表示该服务使用独立长连接。  <dubbo:service connections=”2”>或<dubbo:reference connections=”2”>表示该服务使用独立两条长连接。 4、为防止被大量连接撑挂,可在服务提供方限制大接收连接数,以实现服务提供方自我保护 <dubbo:protocol name="dubbo" accepts="1000" /> 为什么要消费者比提供者个数多?  因dubbo协议采用单一长连接,假设网络为千兆网卡(1024Mbit=128MByte),根据测试经验数据每条连接最多只能压满7MByte(不同的环境可能不一样,供参考),理论上1个服务提供者需要20个服务消费者才能压满网卡 为什么不能传大包?  因dubbo协议采用单一长连接,如果每次请求的数据包大小为500KByte,假设网络为千兆网卡(1024Mbit=128MByte),每条连接最大7MByte(不同的环境可能不一样,供参考),单个服务提供者的TPS(每秒处理事务数)最大为:128MByte / 500KByte =
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dubbo Triple协议是Apache Dubbo框架的一个新增特性,它提供了一新的网络传输协议。在传统的Dubbo框架中,主要使用的网络传输协议是TCP,而Dubbo Triple协议则提供了一基于HTTP/2协议的新的传输方式。 Dubbo Triple协议具有以下特点: 1. 支持双向通信:Dubbo Triple协议实现了Dubbo的双向通信能力。这意味着服务提供方和服务消费方都可以同时发送和接收消息,实现了更加灵活的通信方式。 2. 基于HTTP/2:Dubbo Triple协议底层使用了HTTP/2协议作为传输协议。相比于传统的HTTP/1.1协议,HTTP/2协议具有更高的性能和更低的延迟,能够提供更好的网络传输效率。 3. 支持长连接:Dubbo Triple协议通过复用底层的TCP连接实现长连接,提高了连接的复用率,减少建立连接的开销,提高了通信效率。 4. 支持消息格式:Dubbo Triple协议支持常见的消息格式,包括JSON、Protobuf等,可以根据需求选择合适的消息格式进行通信。 5. 支持编解码方式:Dubbo Triple协议支持编解码方式,包括Dubbo自身的序列化方式和常见的序列化框架,如Hessian、Kryo等,提供了更灵活的编解码选择。 总的来说,Dubbo Triple协议是一基于HTTP/2的新的网络传输协议,它通过支持双向通信、长连接以及多消息格式和编解码方式,提供了更加高效和灵活的服务通信方式,为Dubbo框架提供了更多的选择和扩展能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值