Spring集成RocketMq进阶

针对大量冷链设备数据导致服务过载的问题,采用RocketMq作为消息队列,通过控制消费者每次从队列中取出固定数量的数据进行处理,避免CPU过载。在代码实现中,消费者每10秒获取并处理最多4条消息,确保服务稳定且资源占用较低。
摘要由CSDN通过智能技术生成

    ​    ​场景​:我们平台是做冷链数据采集的,和硬件设备对接,采集实时的温湿度和车辆的定位信息,现有3000多硬件设备,每个设备5分钟上传一次数据,这样的数据量上来后直接把服务搞死,cpu过载​。

 

    ​    ​上面这种情况就算数据库做读写分离,分库分表,但是数据一直在写入,CPU一直在飙高,早晚服务会崩溃,所以考虑放到消息队列中​。但是放到消息队列中也不能说就没有什么问题,如果入队数据量远远大于出队数据量,那么还是会导致服务出现问题,所以现在的考虑是​:使用RocketMq,设备采集的数据直接存入消息队列中,消费者取出存库的操作进行控制,最好的办法是同一时间内,我从消息队列中取出一定的数目进行消费,多余的不再消费,慢慢进行消化,但是有个前提是所要处理的数据是不及时性的,可延迟操作的​!

 

我们在昨天的基础上新建一个方法:

直接上代码吧

final MQPullConsumerScheduleService scheduleService1 = new MQPullConsumerScheduleService("jeemp_producer_group");        scheduleService1.getDefaultMQPullConsumer().setNamesrvAddr("172.16.10.54:9876");        //集群模式        scheduleService1.setMessageModel(MessageModel.CLUSTERING);       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值