需求:收到银行异步通知,要在2秒内将结果返回银行,同时还要根据银行返回的交易状态更新数据库订单状态和其他业务。 采用disruptor,其实最好使用独立MQ产品。本次用的是disruptor,遇到了一些问题,本文说下disruptor的问题排查。 问题1、消费者不在接收队列消息 ...
背景 学生考试上交的场景,我们先将学生数据持久化存储到mongodb中,就告知学生上交成功。然后通过disruptor消息队列去处理后续业务逻辑。这里的上交场景会存在高并发的情况。 选型disruptor框架的原因是 其强大的单机消息处理能力,我们线上尝试使用。如果消息处理失败,则有相应的补偿措施。 上线之初,对该框架研究不深,已经隐约感觉会有bug在路上。。。 线上问题 消息丢失 学生反馈作业上 ...
2021-04-21 10:39 0 341 推荐指数:
需求:收到银行异步通知,要在2秒内将结果返回银行,同时还要根据银行返回的交易状态更新数据库订单状态和其他业务。 采用disruptor,其实最好使用独立MQ产品。本次用的是disruptor,遇到了一些问题,本文说下disruptor的问题排查。 问题1、消费者不在接收队列消息 ...
丢失消息的三种情况:生产者弄丢了数据、RabbitMQ 弄丢了数据、消费端弄丢了数据。 一、生产者弄丢了数据 生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。 方法一: 此时可以选择用 RabbitMQ 提供的事务功能 ...
一、RabbitMQ 1)生产者弄丢了数据 生产者将数据发送到rabbitmq的时候,可能因为网络问题导致数据就在半路给搞丢了。 1.可以选择用rabbitmq提供的事务功能,在生产者发送数据之前开启rabbitmq事务(channel.txSelect),然后发送消息,如果消息 ...
消息堆积 为什么会产生消息堆积? 大多数是因为Consumer 出问题了,没有及时发现,或者故障恢复需要较长时间,导致大量消息积压在消息队列中。 消息队列堆积会造成什么后果? 消息被丢弃 磁盘满了 海量消息需要处理 解决方案: 增加消费者 ...
一、RabbitMQ 1)生产者弄丢了数据 生产者将数据发送到rabbitmq的时候,可能因为网络问题导致数据就在半路给搞丢了。 1.可以选择用rabbitmq提供的事务功能,在生产者发送数据之前开启rabbitmq事务(channel.txSelect),然后发送 ...
消息队列 - 关于消息队列的消息丢失问题的一点思考 使用消息中间件必须面对的两大问题 - 消息丢失 和 消息重复。 消息丢失的解决办法主要是通过消息重发的补偿手段,消息重发后导致消息重复,消息重复需要使用幂等解决。 消息从生产到消费,一般需要 ...
1. 背景 最近用户反馈提交的SQL查询一直处于长时间等待状态,经过排查观察,发现部分查询请求丢失,导致用户提交的查询未被正常接收,继而长时间无响应。 现象:集市SQL控制台提交10个简单SQL查询 -> 消息发送方:发送10条消息至消息队列 -> 消息消费方:只消费了7条消息 ...
收到某业务组的小伙伴发来的反馈,具体问题如下: 项目中某 kafka 消息组消费特别慢,有时候在 kafka-manager 控制台看到有些消费者已被踢出消费组。 从服务端日志看到如下信息: 该消费组在短时间内重平衡了 600 多次。 从 cat 查看得知,每条消息处理都会有 4 次数 ...