Rabbit MQ
Charles.zhang
朝闻道,夕死可矣。路漫漫其修远兮,吾将上下而求索。
展开
-
RabbitMQ消息持久化
一、前言 之前我们讲,RabbitMQ server是采用轮询的方式,公平的依次给每一个消费者。下面我们就来讲讲RabbitMQ 是如何把消息持久化的。 1.1、RabbitMQ手动确认 是消费者处理消息完毕之后,需要RabbitMQ server手动去确认是否处理完毕,而不是自动确认。 通过 rabbitmqctl list_queues查看队...转载 2019-09-23 15:57:21 · 572 阅读 · 0 评论 -
rabbitmq保持连接
背景:最近线上mq消费者进程ok,但rabbitmq控制台显示无消费进程,导致mq队列消息堆积,以前是直接重启mq,这次决定深究下原因操作耗时的守护进程因业务原因,每次导入30w条记录,代码中将每500条一批塞入mq队列,在消费的时候,需要查表插库,处理耗时较长,我们使用的是php-amqp库,代码非常简单$connection = new AMQPStreamConnect...转载 2019-09-23 15:24:47 · 1619 阅读 · 1 评论 -
RabbitMQ死循环-延长ACK时间
一、应用背景 今天做一个需求,要将RabbitMQ中的任务取出并执行,为防止任务执行期间出错,设置NO_ACK=FALSE标志,这样、一旦任务没有应答的话,相应的任务就会被RabbitMQ自动Re-Queue,避免丢失任务。然而、由于任务执行时间较长,通常需要五、六分钟,甚至更长;我们都知道一旦一个任务被取出执行,该任务就从Ready状态更改成Unacked状态。如图所示: 当这个...转载 2019-09-23 17:25:11 · 3459 阅读 · 3 评论