dubbo为什么不适合传大包

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

前提:单一长连接(最主要)
分为服务端和消费端进行分析:

服务端受网卡约束,(会接收多条连接(消费端),单个连接不会成为瓶颈)
1024Mbit=128MByte

单个连接为什么最大7MByte?(56Mbps)

    Mbps=Mbit/s即兆比特每秒(1,000,000bit/s),Million bits per second的缩写是一种传输速率单位,指每秒传输的位(比特)数量。
    传输速率是指设备的的数据交换能力,也叫“带宽”,单位是Mbps(兆位/秒),目前主流的集线器带宽主要有10Mbps、54Mbps/100Mbps自适应型、100Mbps和150Mbps四种。

所以,服务端受网卡限制。不受单条连接限制。单条连接受带宽限制。

通俗讲就是服务端接收多个客户端,不受单个连接传输速率限制。千兆网卡1024Mbit(128MByte).
单条连接传输受带宽限制,如果带宽为54Mbps,那么最大每秒传输为54Mbps/8约等于7MByte。

猜你喜欢

转载自blog.51cto.com/jiaxiaoxu/2393322