I want to migrate messages on an existing exclusive queue to another queue for preservation, because it's misconfigured and its consumer need to be updated.
How can I migrate those messages?
Related
When the consumer consumes messages from the queue, then messages get automatically deleted from the queue. But I want to store them in the queue as long as I want. So is there any way in Spring Boot to store the RabbitMQ messages in the queue?
I'm using Rabbitmq 3.7.17 and I need to rename an existing queue that already contains some messages. Is there a simple way to rename a queue?
You can't rename a queue. If you have to keep the messages, follow these steps.
Create the new queue.
Bind it to the exchange as the old queue was bound.
Unbind the old queue from the exchange.
Consume the messages from the old queue and republish them to the exchange. This will route the messages to the new queue.
Once all messages in the old queue have been consumed, delete it.
To add to what #user11044402 already recommended, once you created the queue under its NEW name, use the RabbitMQ Shovel plugin if it is installed to move all the messages from the queue with the old name to the new queue. Then delete the old queue - the shovel will be automatically removed as well.
I'm using Redis Pub/Sub implementation to exchange messages between two projects. I have a few channels subscribing the same queue. When both publisher and subscriber are running, everything goes well. When I have only the publisher working(and a lot of messages are published), I would expect that when the subscriber starts, it would read all the messages that were enqueued previously. But what happens is that Redis does not keep the messages if there is no subscriber. Is there any configuration I could use to keep the messages until a subscriber dequeue them?
Redis currently doesn't behave like an MQTT broker with his "retain" flag.
If the subscription occur after the message has been published, It will be missed for the subscriber and lost forever.
I have multiple NSB endpoints using MSMQ as transport and pointing to centralized audit queue.
ServiceControl forwards the messages from the audit queue to its RavenDb and ServiceInsight/ServicePulse show those messages.
Over a period, I'm seeing the audit queue is filled up with lot of messages which is becoming a maintenance issue.
Question - Is there any configuration in ServiceControl that can purge the messages in the audit queue automatically?
ServiceControl comes with message retention policies that you can also customize. You didn't mention which version of ServiceControl you're using but the latest one comes with default expiration of messages after 30 days. It is all documented here.
I'm planning to use rabbitmq federation plugin to replicate messages from master data center to standby, so I can't use cluster mirrored queues.
Is it possible to replicate message deletion to auto sync queue?
In case you need to replicate message from one queue to many consumers use an shovel to map the desired queue to a fanout exchange...then consume directly from the exchange using exclusive queues for each consumer