踩坑日记——大量数据并发及长时间耗时

在物联网协议开发中,面临20000余只设备的并发数据处理和耗时问题。通过尝试使用tornado、rabbitMQ、twisted等技术,最终通过tornado与线程结合的方式,解决了移动推送响应延迟和并发处理的问题,实现了高效稳定的通信流程。
摘要由CSDN通过智能技术生成

背景:

        本人菜鸟,初步接触物联网协议开发,要求从移动物联网上接入20000余只设备(可能以后更多),移动物联网HTTP实时推送设备上报的数据,服务收到数据后进行解析,并根据解析及时返回移动平台响应报文,移动平台收到报文后响应给设备,完成一次数据上报通信。有以下要求:①移动推送数据后必须及时返回移动响应,否则移动平台认为推送失败重复推送,多次失败后推送服务停止(耗时影响很大)。②收到推送的数据后,需要及时处理,并回复响应报文(设备集中上报时,并发影响很大)。③,响应给移动平台是需要调用http-post方式,并根据是否成功进行下一步操作(网络波动,api接口耗时影响很大)。

踩的坑

        第一版使用异步方式开发,使用tornado框架,但每条数据进行解析、生成响应报文、数据存储(已优化,基本不耗时),给平台发送设备响应报文,会消耗很多时间,造成不能及时给移动推送服务进行确认,移动判断推送失败,多次推送,一段时间后推送服务停止。

        第二版使用tornado框架配合rabbitMQ消息中间件,将响应设备报文后调用api的步骤存放在消息消费者中处理,但启动少量的消费者时,不足以短时间消费大量的并发数据。启动大量消费者时,长时间没有数据时,造成资源浪费。

        第三版则使用tornado框架配合twisted框架,设计两个服务,第一个服务主要接收推送的数据,并使用Tcp/Ip方式将数据推送到第二个服务,由于第一个服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值