随笔分类 - RabbitMQ
摘要:当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。 解决消息堆积的两种思路 * 增加更多消费者,提高消费速度。也就是我们之前说的work queue模式 * 扩大队列容积,提高堆积上限(
阅读全文
摘要:**什么是死信交换机?** 要先解释一下什么是死信:当一个队列中的消息满足下列情况之一。就可称为死信。 * 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false * 消息是一个过期消息,超时无人消费 * 要投递的队列消息满了,无法投递
阅读全文
摘要:RabbitMQ如何保证消息可靠性? 1.开启生产者确认机制,确保生产者的消息能到达队列。 2.开启持久化功能,确保消息未消费前在队列中不会丢失。 3.开启消费者确认机制为auto,由Spring确认消息处理成功后完成ack。 4.开启消费者失败重试机制,并设置MessageRecoverer,多次
阅读全文
摘要:由于传统的RabbitMQ使用起来较为麻烦,这里便直接使用SpringAMQP这套模板。 先创建一个名为mq-study的SpringCloud项目,该项目下有两个子模块,consumer和publisher。分别对应消息的消费者和消息的生产者。 在mq-study的pom文件中引入SpringAM
阅读全文
摘要:安装步骤 1.在线拉取 `docker pull rabbitmq:3-management` 2.安装RabbitMQ `docker run \ -e RABBITMQ_DEFAULT_USER=wzh \ -e RABBITMQ_DEFAULT_PASS=1234 \ -v mq-plugin
阅读全文