rabbitmq笔记

消息队列RabbitMq在使用过程中,为防止消息的丢失
1:关闭消息的自动应答机制,设置消息的确认机制,客户端接收到消息,返回队列一个回执消息。
2:不仅需要设置Queue持久化,还要将Exchange,Message都设置持久化。
3:任何的持久化机制都不能100%保证消息被成功消费,一定要针对消息队列在项目业务场景中的应用,建立合适的消息补偿机制。

RabbitMQ为我们提供了两种消息确认机制:
1:通过AMQP事务机制实现,但是这种方式时候会降低MQ的性能;
2:通过将channel设置成confirm模式来实现,confirm机制分为三种 1)普通confirm模式 2)批量confirm模式 3)异步confirm模式,我们可以根据不同的业务场景做出合适的选择;

消息确认机制: https://www.cnblogs.com/xiaohua19920/p/9668516.html

MQ使用业务场景简单描述
创建一个考试,关联了大量的人员,需要给这些人员发送短信,管理后台创建考试后页面立马返回创建成功,把相关联人员的手机号写入MQ,消费者收到消息并消费成功以后,数据库里面是否已经发送短信status置为Y,启动一个定时任务,查询数据里面status状态为N的手机号,再次放入MQ或者在定时任务中启动发送短信逻辑,作为一个消息补偿机制。

你可能感兴趣的:(rabbitmq笔记)