I'm trying to provide disaster recovery between two data centers for a RabbitMQ. The secondary datacenter is passive until the primary DC goes down.
Federation of queues is inappropriate because it wouldn't move messages until the consumers in the secondary DC go active. That shouldn’t happen unless the primary DC is unavailable at which point those messages are inaccessible.
I’ve considered creating an extra queue in the primary DC that would receive a copy of each message and then use Federation or Shovel to copy those messages to the secondary. The issue then becomes removing the duplicate message from the secondary DC when the “original” in the primary DC is processed.
Mirroring the queue to a node in the secondary DC would be work, except that RabbitMQ won’t cluster over a WAN due to latency.
Has anyone else faced this scenario? Thanks.
Rabbitmq active/passive HA over WAN
915 Views Asked by Jack Whipnert At
1
There are 1 best solutions below
Related Questions in RABBITMQ
- When sending message getting Exception: org.springframework.amqp.AmqpIOException: java.io.IOException
- How to publish messages to RabbitMQ by using Multi threading?
- How should it be handled if the number of messages is less than the number of threads?
- Apply a dynamic group value in Spring Cloud Stream
- Two rabbitmq queues with exactly same configuration one of them is not created automatically (Spring Boot 3 RabbitMQ)
- Does Spring AMQP 3.13 support quorum queues?
- IServiceCollectionConfigurator' does not contain a definition for 'UsingRabbitMq'
- Troubleshooting topic exchanges in php-amqplib
- How to Use AWS Systems Manager (SSM) for Accessing a RabbitMQ Broker in an AWS VPC Private Subnet
- Rabbitmq on azure container app error 405 on trying to create queue on web management
- Cannot connect to RabbitMQ from Flower/Celery
- How to Extract Queue Name, Priority, and Message ID from RabbitMQ Inbound Endpoint Messages in WSO2 MI 4.2?
- Spring Boot RabbitMQ consumer application can not fetch an object sent by producer application in Java 17
- Is it possible to implement an event-driven architecture using Redis Streams?
- Scaling Nuclio With KEDA Based on Queue Length: Error ScaledObject Name is Not Specified
Related Questions in HIGH-AVAILABILITY
- How to configure in build keepalived of opensips?
- Assigning a dedicated Primary node for write operations in MongoDB replica set
- PostgreSQL high availability setup along with Read-Replica's
- Flink high-availaility in standalone cluster, kill the jobmanager process. But the jobmanager can not recover later
- How to use pacemaker to use Virtual/Floating IP address?
- ActiveMQ Artemis HA split-brain issue on OOME crash
- Kafka mirror maker: Data in some topics are not replicated
- Difference between Edge and HA clusters artifactory
- Do we need to share /var/lib/nfs for NFSv4 recovery process?
- MQTT on Raspberry Pi 3B+ (Raspbian) not working anymore
- Issue encountered while adding a script for REPMGR split-brain prevention
- What is use case where we can see the benefit out of having witness node in the PG cluster
- Do we need a load balancer while we have multiple master nodes?
- Why the values from Hadoop API doesn't match with the calculated values?
- How can I manage DB switchover for write queries?
Related Questions in WAN
- AS-Path Modification on BGP Neighbors
- Resuming rsync Causes Curious Network Traffic Flow
- How to calculate/find the network ID of my home router and second hop router?
- How access the same domain with different folders from the Internet (wan) Apache (wamp)?
- Using Active Directory replication over unreliable WAN
- Mikrotik multiple ip on one VAN (routeOS 7)
- How can I make my Socket server to work on WAN?
- Can't access modem configuration centurylink
- How to share files between 2 instances in different security groups?
- How to connect client in a internet to the server
- Azure WAN and P2S VPN Forced Tunneling
- How to get access to the Angular client via WAN or LAN
- PowerShell SSH only works on LAN but not over the internet
- Port Forwarding in socket Programming
- How to recreate a join accept downlink message in LoRaWAN?
Related Questions in ACTIVE-PASSIVE
- EDIT : how to make a service with active/passive option to choose only a master pod?
- Nginx switches back to the first node after it comes back online
- How to have multi-region replication for SQS messages?
- Active Passive system setup
- How to run ansible playbook in active/passive cluster setup?
- How does Passive EC2 instance work in case of active-passive failover?
- keep pcs resources always running on all hosts
- Active-Passive Jenkins Setup in Kubernetes
- How to setup Active/Passive HAproxy configuration for MySQL with automatic failover but not automatic failback
- Rabbitmq active/passive HA over WAN
- haproxy failover active-passive
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
you quite eloquently explain the issues with using Federation and Shovels to try and solve DR with RabbitMq. Rabbit isn't really designed to move data efficiently over a WAN.
Moving data across a WAN always presents problems for a messaging solutions. For instance IBM MQ has multi-instance queue managers for HA, but needs a SAN for DR which becomes expensive both in product and processing time.
Another free product like Rabbit that you could use is Solace. It has HA and DR replication built into it. It can manage active/passive passive DR scenario you describe by moving each message across the WAN asynchronously in near realtime. As soon as you're ready to move application traffic to the backup DC, you can activate the backup instance and start consuming messages. It automatically "removes the duplicate message" as it is consumed from the active side.