Can we have application connect to multiple Data Centers to achieve active/active capability
We have a use case where we have 2 data centers with guaranteed messaging , currently we want HA hence both data centers are active all the time,
so we have
- DC1.VPN1 with Q1 that is consumed by Client 1
- DC2.VPN2 with Q2 that is consumed by Client 2
The publishing of events happen either in DC1.VPN1 or DC2.VPN2 based on load / route etc,
now with this setup in place we recently had an issue where Client 2 in DC2 was down for sometime and hence the DC2.Q2 became full and this caused some major prod issue.
To fix this we have planned to have Client 1 and Client 2 directly connect to both VPN1 and VPN2 so that even if one of the Client is down the other client can still be able to consume the events.
Q1 and Q2 have non exclusive access hence will serve both clients in round robin
Client1 ---> DC1.VPN1 --> Q1
+---> DC2.VPN2 --> Q2
Client 2 ---> DC2.VPN2 --> Q2
+---> DC1.VPN1 --> Q1
Please let me know if this approach is recommended as it seems to manage the routing/handling outside solace. Also please let me know if there is a better solution to do the same.
thanks
Daniel
Answers
-
Hi @danielpravin, it's difficult to answer this question without understanding the use case in depth. For instance, what you want to happen is the case the network connection between the 2 DCs fails? What about when one of the data centres is unavailable? How do(es) the producer(s) work and which DC are they in?
In general, I'd say this is a good use for the Disaster Recovery feature. You would have VPN1 active in DC1 and replicated in DC2, and VPN2 active and replicating to DC1. Should client2 fail in DC2, you would switch VPN2 to be active in DC1 and consume from there.
0