美文网首页
Dubbo协议长连接

Dubbo协议长连接

作者: 晚歌歌 | 来源:发表于2020-03-04 17:15 被阅读0次

DUBBO官方文档

连接个数:单连接
连接方式:长连接
传输协议:TCP
传输方式:NIO异步传输
序列化:Hessian二进制序列化
适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。
适用场景:常规远程服务方法调用
优点:采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(官方推荐使用)
缺点:在大文件传输时,单一连接会成为瓶颈

考虑点

  • 为什么要消费者比提供者个数多:
    因dubbo协议采用单一长连接,假设网络为千兆网卡(1024Mbit=128MByte),根据测试经验数据每条连接最多只能压满7MByte(不同的环境可能不一样,供参考),理论上1个服务提供者需要20个服务消费者才能压满网卡。

  • 为什么不能传大包:
    因dubbo协议采用单一长连接,
    如果每次请求的数据包大小为500KByte,假设网络为千兆网卡(1024Mbit=128MByte),每条连接最大7MByte(不同的环境可能不一样,供参考),
    单个服务提供者的TPS(每秒处理事务数)最大为:128MByte / 500KByte = 262。
    单个消费者调用单个服务提供者的TPS(每秒处理事务数)最大为:7MByte / 500KByte = 14。
    如果能接受,可以考虑使用,否则网络将成为瓶颈。

  • 为什么采用异步单一长连接:
    因为服务的现状大都是服务提供者少,通常只有几台机器,而服务的消费者多,可能整个网站都在访问该服务,
    比如Morgan的提供者只有6台提供者,却有上百台消费者,每天有1.5亿次调用,如果采用常规的hessian服务,服务提供者很容易就被压跨,通过单一连接,保证单一消费者不会压死提供者,长连接,减少连接握手验证等,并使用异步IO,复用线程池,防止C10K问题。

NIO单一长连接案例

NIO单一长连接的RPC设计

相关文章

  • Dubbo协议长连接

    DUBBO官方文档 连接个数:单连接连接方式:长连接传输协议:TCP传输方式:NIO异步传输序列化:Hessian...

  • dubbo协议

    简介 dubbo协议是dubbo默认的协议,它的特点如下: 连接个数:单连接 连接方式:长连接 传输协议:TCP ...

  • HTTP 长连接和短连接

    1、HTTP协议和TCP/IP协议的关系? HTTP协议长连接和短连接本质上是TCP的长连接和短连接。HTTP 属...

  • 20161008学习笔记及总结

    20161008学习笔记及总结# 知识点概要## TCP/IP协议长连接、短连接全双工和半双工 => nodejs...

  • Dubbo 连接数控制

    客户端连接控制 限制客户端服务使用连接不能超过 10 个。 如果

  • aiomysql库常用接口

    [aiomysql官网] Connection 连接MySQL的协程: 使用连接创建游标的协程: 参数: curs...

  • Dubbo | 多协议

    Dubbo 支持的多种协议的对比 特性dubboRMIHessian连接数单连接多连接多连接连接方式长连接短连接短...

  • Dubbo入门-协议&注册中心(1)

    Dubbo入门-协议&注册中心 一、配置dubbo多协议模式 1、默认协议 Dubbo缺省协议采用单一长连接和NI...

  • dubbo协议对比分析

    dubbo协议对比分析 1、dubbo 适用场景: dubbo缺省协议采用单一长连接和NIO异步通讯,适用于小数据...

  • 命令行调用Dubbo服务

    Dubbo 服务端支持 telnet 调用,具体如下: telnet 连接到 dubbo 服务端 查看服务端接口列...

网友评论

      本文标题:Dubbo协议长连接

      本文链接:https://www.haomeiwen.com/subject/fwdblhtx.html