RabbitMQ消费端消费能力不足,消息消费慢问题解决思路

这篇具有很好参考价值的文章主要介绍了RabbitMQ消费端消费能力不足,消息消费慢问题解决思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思路:(易->难)

1.新增服务器,增加消费端数量。

2.服务器端开启多线程消费消息(默认单线程监听队列),需要注意多线程可能带来的并发问题。

3.优化消费端处理逻辑,提升消息消费速率即系统优化。

背景:本系统为小型支付系统,商户618活动期间,用户购买商品付款后迟迟收不到支付结果异步通知。

问题排查:排查日志,发现收单渠道方推送支付结果异步通知正常。回调服务(本系统通知商户支付结果服务)消费队列消息滞后,导致商户不能及时收到支付结果。

消费端监听消息:此模式默认单线程监听队列

@RabbitHandler
@RabbitListener(queues = MQConstant.ZFB_HANDLER_QUEUE)
public void zfbReceiveMsg(Map<String, Object> map, Message message, Channel channel) throws IOException {
    //dosomething
}

消费端监听消息:此模式开启多线程监听队列

concurrency = "5-8":表示开启5个线程监听队列,最大为8个线程(依据服务器负载情况)

当然也可以在RabbitListenerContainerFactory的配置中指定线程数。文章来源地址https://www.toymoban.com/news/detail-539805.html

@RabbitHandler
@RabbitListener(queues = MQConstant.ZFB_HANDLER_QUEUE, concurrency = "5-8")
public void zfbReceiveMsg(Map<String, Object> map, Message message, Channel channel) throws IOException {
    //dosomething
}

到了这里,关于RabbitMQ消费端消费能力不足,消息消费慢问题解决思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RabbitMQ | 第六篇】消息重复消费问题及解决方案

    什么是 消息重复消费 ?首先我们来看一下消息的传输流程。消息生产者–MQ–消息消费者;消息生产者发送消息到MQ服务器,MQ服务器存储消息,消息消费者监听MQ的消息,发现有消息就消费消息。 所以消息重复也就出现在 两个阶段 1 :生产者多发送了消息给MQ; 2 :MQ的一条

    2024年04月26日
    浏览(36)
  • mq常见问题:消息丢失、消息重复消费、消息保证顺序

    mq常见问题:消息丢失、消息重复消费、消息保证顺序 消息丢失问题 拿rabbitmq举例来说,出现消息丢失的场景如下图 从图中可以看到一共有以下三种可能出现消息丢失的情况: 1 生产者丢消息 生产者在将数据发送到MQ的时候,可能由于网络等原因造成消息投递失败 2MQ自身丢

    2024年02月09日
    浏览(44)
  • RabbitMQ消息丢失、消息重复消费、消息顺序性无法保证、消息积压、一致性问题、系统可用性降低等这些常见问题怎么解决

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 1. 消息丢失 问题 :在生产者发送消息到MQ、MQ内部处理、消费者接收消息的任一环节都可能导致消息丢失。 解决方案 : 生产者确认机制 :确保消息

    2024年04月25日
    浏览(27)
  • rabbitmq topic模式设置#通配符情况下 消费者队列未接收消息问题排查解决

    生产者配置 Exchange:topic_exchange_shcool Routing key:topic.shcool.# 消费者代码配置 Exchange:topic_exchange_shcool Routing key:topic.shcool.user 其实以上代码看着没有问题,意思是代码生成一个队列,并把【topic.shcool.user】队列和生产者的【topic_exchange_shcool】exchange绑定,但是生产者发送消息是

    2024年02月11日
    浏览(36)
  • RabbitMQ消息丢失的场景,MQ消息丢失解决方案

    第一种 : (生产者) 生产者弄丢了数据。生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。 第二种 : (服务端) RabbitMQ 弄丢了数据。MQ还没有持久化自己挂了 第三种 : (消费者) 消费端弄丢了数据。刚消费到,还没处理

    2024年02月08日
    浏览(35)
  • 【vue+ stompjs接收rabbitMQ消息(断连重连mq问题】

    原因:一个实例只能connect一次,重新new 对象 stompjs源码片段:(stompjs文档) 函数内部new Client返回新的一个对象,Stomp.over(ws)执行一次就是一个新对象 vue+stompjs接收mq消息完整代码

    2024年02月12日
    浏览(30)
  • RaabitMQ(三) - RabbitMQ队列类型、死信消息与死信队列、懒队列、集群模式、MQ常见消息问题

    这是RabbitMQ最为经典的队列类型。在单机环境中,拥有比较高的消息可靠性。 经典队列可以选择是否持久化(Durability)以及是否自动删除(Auto delete)两个属性。 Durability有两个选项,Durable和Transient。 Durable表示队列会将消息保存到硬盘,这样消息的安全性更高。但是同时,由于需

    2024年02月14日
    浏览(35)
  • RabbitMq(七) -- 常见问题:幂等性问题(消息重复消费)、消息丢失

    用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常, 此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返

    2024年02月05日
    浏览(29)
  • 记一次rabbitmq消息发送成功,消费丢失问题

    测试数据归档,偶现数据未归档 idea线上调试,log日志,数据库消息发送记录,代码分块重复执行看哪块出的问题,结果均无问题,最后使用rabbitmq trace日志,发现问题所在 1. 什么是Trace Trace 是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。可通过插

    2024年02月16日
    浏览(40)
  • 在项目中高并发场景怎么解决消息队列重复消费的解决思路

    1. 前端限制: 防抖和节流:在用户点击“下单”按钮时,使用防抖和节流技术限制用户在短时间内多次提交。 2. 后端接口处理: 分布式锁:当用户下单时,可以使用Redis或ZooKeeper实现的分布式锁,确保同一个用户在同一时间只能有一个订单请求被处理。 3. 订单唯一性设计:

    2024年02月13日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包