rabbitmq线程安全问题

来源:8-13 实际开发中的经验小结

我什么都不会的

2021-06-14

老师,您好,有两个问题想要请教一下您,假设现在交换机为A,队列为B,两者之间进行了路由绑定:
1、假设现在生产者是多线程往rabbitmq的交换机A中发送数据,假设现在能路由成功,我想知道rabbitmq的queue作为一个临界资源是不是能够保证queue中的数据最终是线程安全的,即会不会存在消息重复,覆盖,丢失等现象;
2、老师,您在经历过的项目中,一般队列中存在多少条数据了,消费者才会开启多线程进行消费。

写回答

1回答

Moody

2021-06-15

  1. 1从经验来讲,做好了消息确认等操作,是可以保证线程安全的。但是消息处理的可靠性和业务应用也有很大关系,比如消息退回MQ时,是否做到了本地业务的同时回滚,如果消息NACK,但是本地业务没完全回滚,也会造成消息“重复消费”的问题。

  2. 2使用MQ的业务往往并发量挺大,一般默认就是开启多线程的,不会等到消息有堆积才会开启。

0
0

RabbitMQ精讲,提升工程实践能力,培养架构思维

消息驱动架构+订单状态机,二次开发,手写分布式事务框架。

455 学习 · 202 问题

查看课程