稍微记录下这两天弄物联网采集数据缓冲的心得

    由于之前采集服务器(服务器A)采集的数据直接发完业务逻辑服务器(服务器B)进行处理,这样A需要阻塞等待B完成后才能继续发送数据,导致A采集部分存储了大量的数据,然后一次性发给B。B处理大量数据又耗时,这样A就要等待更久的时间,屯了更多的数据……(如此恶性循环下去,导致服务器性能没发挥上,响应慢

    于是乎,就打算弄个一级缓冲。

    A发送给B,B不做处理,直接扔到缓冲池,并且通知C数据存储完毕。这两步速度十分快,A调用B的接口很快就得以返回,所以就不会存在之前的情况了。然后C收到B的通知后,便通过事件驱动机制,去调用B的处理业务接口,让B无后顾之忧地全速跑。(测试后,1核1G的linux服务器跑出了平均负载10的效果,并发量达到了1k,而且不怎么卡

    但是这样可能会导致另外一个问题,由于A发得太快,A端的端口号可能不够用,产生很多TIME_WAIT。当然,这个也是可以计算的,而且在A端做个缓冲也就解决问题了。就是用缓冲池的话,会导致带宽波形锯齿状,看着好揪心。另外计算后发现是log函数,在TIME_WAIT数量为9k~10k之间达到平行,而且波形很平滑,看着我舒服。

转载于:https://my.oschina.net/chrisforbt/blog/1630662

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值