使用下面的命令启动的 rabbitmq
docker run -d -p 15672:15672 -p 5672:5672 rabbitmq:3-management
我现在有一批数据库被消费了,事后我发现现在不应该被消费的,我想重新恢复现场,请问 rabbitmq
可以做到吗?
rabbitmq
什么时候会删除掉已经被消费的数据?rabbitmq
可以复原被消费掉的数据吗?
我并不知道 rabbitmq
有没有持久化什么的,因为一切都是上面那个 docker
命令干的,我也不知道他开启了什么,关闭了什么
在RabbitMQ中可以使用Firehose功能来实现消息追踪,Firehose可以记录每一次发送或者消费消息的记录,方便使用RabbitMQ的使用者进行调试、排错等。
Firehose的机制是将生产者投递给RabbitMQ的消息,或者是RabbitMQ投递给消费者的消息按照指定的格式发送到默认的交换器上。这个默认的交换器的名称为amq.rabbitmq.trace,它是一个topic类型的交换器。发送到这个交换器上的消息的routingKey为publish.exchangename和deliver.queuename。其中exchangename和queuename为实际的交换器和队列的名称,分别对应生产者投递到交换器的消息和消费者从队列中获取的消息。
开启Firehose命令:
其中
[-p vhost]
是可选参数,用来指定vhost。对应的关闭命令为:
注意Firehose默认情况处于关闭状态,并且Firehose的状态也是非持久化的,会在RabbitMQ服务重启的时候还原成默认的状态。Firehose开启之后多少会影响服务的性能,因为它会引起额外的消息生成、路由和存储。
参考来源: https://blog.csdn.net/u013256...