服务器限制一条连接的消息包单位时间内的发送频率

服务器的处理能力有限,如果单位时间内一条客户端连接发送的消息包过于频繁,那么消息的发送机制本身设计得就不合理。

首先这种情况会造成的服务器压力:

假设同时连接服务器的连接数共有10000条,每条连接以间隔1秒钟向服务器轮询发送心跳包,这种场景下每一条连接都感觉网络包收发流畅。但如果每条连接以间隔0.1秒钟向服务器轮询发送心跳包,也就是相当于之前1秒钟只发送1个心跳包改成了发送10个心跳包,那么服务器可能会造成消息队列拥塞,如果缓存的消息超过了队列容量的负载范围,那么还会造成丢包现象。

其次,客户端体验下降:

这种场景下每条连接可能明显感觉到网络包接收延迟了,因为服务器单位时间内的处理能力有限,只能按一定的速度去处理请求,而客户端频繁的发送网络请求就会出现发送的网络请求并不能很快得到响应的情况。

这种情况下,如果客户端不做优化,那么就需要考虑提升服务器的处理能力了,如果是分布式架构则采用加机器的方法,否则升级单机配置。

如果客户端做优化,那么可以通过消息队列来控制网络请求的发送频率,设定一个单位时间内允许发送的最高频率的阈值,当单位时间内发送的网络请求数达到预设的阈值时,就减缓队列内的请求发送频率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值