Wehave very unique problem. 

 Wehave a application deployed on weblogic cluster that is spread across 2 
datacenter(active-active) DC1 and DC2 (different LAN but same WAN). This 
producer app generatesdifferent user events, which other apps (consumer apps) 
are interested in.Right now we use JMS as event storage\messaing. JMS would not 
scale to leverage all ofthe events (right now we only pump small percentage of 
events through JMS), so wewant to move Kafka. This nicely fits for our needs. 

 Ourcurrent deploy and guideline from network team complicates this very simple 
usecase.

 1.    Our network teammandates that any deployment be in both DC1 and DC2. So 
if DC1 is unavailable weswitch to DC2. From all the reading I have done, having 
kafka cluster separateacross 2 DC is not recommended, also zookeeper cluster 
over the wan is going tobe slow.
So thought is have 2 independent kafkacluster one in each DC. Then user Mirror 
Maker (MM) to copy the message from topic onDC1 to DC2 and in other direction 
as well. (this is based on https://kafka.apache.org/081/ops.html)
2. Also many consumerapp will prefer to get message in orderly fashion to make 
sense of the events.(ordering provide by kafka is sufficient)
But producer app is active active so our userevents would be generate on either 
DC1 or DC2. How we manage reasonable orderbetween events for user across DC? To 
address this, the consumer group on DC1will only consume ODD user id events and 
DC2 will only consume EVEN user id events.
So EVEN user id event generated on DC1, hasto go through MM process to DC2. So 
this introduces the MM processing time andnetwork latency, so ordering is not 
perfect but I think we can live with it. Iam new to kafka and I appreciate any 
advice from more seasoned kafka user. Will this work or fail? Is there better 
way? Any other suggestions?

 Thanks,

Shri

Reply via email to