Rabbitmq Seamless upgrade without downtime - rabbitmq

I am planning to upgrade 3 node rabbitmq cluster. But I need to perform the upgrade without a downtime also I don't want to miss any messages in the queue. Can you please give me suggestions on how this can be achieved.
Version to be upgraded: 3.6.3 --> 3.7.5
Regards,
Rahul N.

The RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.
A simple google search brings up these links, which demonstrate how to upgrade without downtime:
https://www.rabbitmq.com/upgrade.html
https://www.rabbitmq.com/blue-green-upgrade.html

As discussed in rabbitmq-users group, we need to federate queues in the Vhosts individually.
We need to federate the vhosts and then shift the traffic for consumers to new green cluster. Once consumers start consuming the messages from green cluster, we can shift the producers to green cluster.

Related

Is there any possibility of messages loss in RabbitMQ cluster, when that I have durable queues and messages delivery mode is persistence?

I had an production incident and after resolution of incident we found some of the messages were lost. I have a cluster of three instances. There was some network problem between then that is why I restarted all three nodes simultaneously. Letter on the issue was resolved but some messages were lost.
queues configurations-
all queues are durable.
messages delivery mode is persistence.
I tried few few thing but I didn't get any messages loss. such as -
I restarted RabbitMQ server on all the instances simultaneously on dev environment.
I rebooted all the instances but there was no loss of messages.
Is there any other possibility of messages loss in such scenario?
You need to ensure your publishers are using publisher confirms correctly. Then, read this article.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.

High Availability and Load Balancing in RabbitMq

Consider a cluster with A and B nodes,I want a solution which meet these requirements:
1) When node A goes down the system continue working properly with node B till node A comes up again
2) Preventing extra network hop when master node is on Node A and client was connected to Node B, so when client publish a message, RAbbitmq route it to Node A i want to pervent this extra network hop
I should write my balancer or any framework (like HA Proxy) exist that can do these requirements?
Your question was recently discussed on the rabbitmq-users mailing list: link.
I recommend reading it.
For question #2, don't worry about the extra hop unless you have proof it causes an issue for you.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.

RabbitMQ crashes when entering UI

I was testing RabbitMQ using a script, I added 500,000 bindings to different routing keys on an exchange. Only when I try to enter the rabbit's UI - the exchange page, the page fails to load and the rabbit server crashes.
Is this a known issue? Is it a memory problem?
Is this a known issue? Is it a memory problem?
The answers are "No" and "Maybe".
You haven't given basic information like RabbitMQ, Erlang and operating system version. I'm assuming you have a script to add that many bindings. If you'd like to share the required information on the mailing list the team may be able to help out.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.

using Hyperic HQ 4.6 to monitor ActiveMQ 5.5

Does anyone know if I can use Hyperic HQ 4.6 supports ActiveMQ 5.5? I am trying to establish connection between them. I installed Hyperic HQ agent to a server that has ActiveMQ broker and I enabled useJmx on the broker.
But in Hyperic HQ server I can't find ActiveMQ process to monitor. I can see plenty of other services on that particular machine which I can monitor, but not ActiveMQ. How can I fix it?
UPDATE: Ok, I found a JIRA ticket https://jira.hyperic.com/browse/HHQ-4380 and I added 5.5 section to configuration file. Now autodiscovery works fine, but I don't see any statistics about queues and topics. I see information about activemq process in general: CPU usage, memory usage etc. Is it possible to add metrics about queues and topics?
UPDATE 2 Here is an article of how to make visible some ActiveMQ information - http://forums.hyperic.com/jiveforums/thread.jspa?messageID=69458&tstart=0 After uncommenting required lines I started too see infromation about resources: ActiveMQ.Advisory.Consumer.Topic.topic/eventsTopic, ActiveMQ.Advisory.Topic, topic/eventsTopic. But there is no my queues in the list. Help!
The functionality that you are after needs to be defined within an HQ plugin. FuseSource provide a commercially supported version of HQ as part of their subscriptions called Fuse HQ that has ActiveMQ plugins provided out of the box (along with the other products that are part of their offering: Camel, ServiceMix and CXF). With it you can monitor individual queues, topics, connectors as well as whole brokers.

rabbitmq HA cluster

I am wanting to setup RabbitMQ as a two (or more) node cluster with HA.
Use case: a client producer app (C#.NET) knows that the cluster has two nodes and publishes to the cluster. Various consumer apps (also C#.NET) connect to the cluster and get all messages generated by the producer. So long as at least one node is up and running the producer and consumers will all continue to work without error. Supposing nodes A and B are running and B dies for a while, then gets restarted, then a while later A dies, the clients all continue to function without receiving an error since at all times at least one node is up.
Can it be made to work like this out of the box?
Are there any other MQs that would be more appropriate (commercial ok) for a Windows/.NET application environment?
RabbitMQ v2.6.0 now supports high-availability queues using active/active clustering. Microsoft and a number of other companies have collaborated on Apache QPid which has C# bindings and which also supports active/active HA clustering.
Can it be made to work like this out of the box?
No. When a node goes down, all of its connections are closed. Since AMQP connections are stateful, there's no way around this. What you could achieve is 1) broker goes down, 2) all clients disconnect, 3) clients connect to other node (masquerading as original) and are none the wiser.
On a side note, rabbit does not support active-active HA clustering at the moment. It does support active-passive clustering and a form of logical clustering (which might be what you're looking for).