Will, the idea is to have a DNS name or VIP which resolves to IP addresses from one cluster or the other depending on health checks. You can have your producers load-balanced 50/50 between two clusters, or could have a backup cluster that is only used when the primary cluster is unreachable, etc.
When a producer times-out trying to send to the current set of IP address, it will try to resolve the DNS name again and receive a new set of IP addresses. For this to work, you may need to tweak various producer properties, e.g. retries, timeouts, refresh intervals. > Or is it more that the load balancer acts as more of a service discovery point for clients? Yes, that's an apt description. Ryanne On Thu, Aug 29, 2019 at 7:47 AM Will Weber <rwawe...@gmail.com> wrote: > Hey Ryanne, thanks for the feedback. > > Would you mind going into more detail with how that would work? > > My understanding is that the Kafka wire protocol isn’t really intended to > be loadbalanced. Or is it more that the load balancer acts as more of a > service discovery point for clients? > > I’ve seen in other threads that LinkedIn typically fronts their clusters > with a load balancer, but I haven’t found much information on that strategy > and the associated tradeoffs. > > Best, > > On Thu, Aug 29, 2019 at 12:36 AM Ryanne Dolan <ryannedo...@gmail.com> > wrote: > > > Will and Garvit, you can use a load balancer with health checks for this > > purpose. > > > > Ryanne > > > > On Wed, Aug 28, 2019, 6:09 PM Will Weber <rwawe...@gmail.com> wrote: > > > > > Apologies for piggybacking on a thread, figured the discussion was > pretty > > > relevant to a thought I had kicking around my brain. > > > > > > In the event of complete failure or sustained loss of connectivity of > the > > > first cluster, could the secondary cluster act as a failover for a > given > > > configuration? > > > > > > Assuming the respective clusters are set up like the following: > > > > > > Cluster A > > > brokerA01:9092 > > > brokerA02:9092 > > > brokerA03:9092 > > > > > > Cluster B > > > brokerB01:9092 > > > brokerB02:9092 > > > brokerB03:9092 > > > > > > And the corresponding producer's properties line contained something > > like: > > > > > > > > > > > > bootstrap.servers="brokerA01:9092,brokerA02:9092,brokerA03:9092,brokerB01:9092,brokerB02:9092,brokerB03:9092" > > > > > > My initial theory is that a failover action would respond like: > > > 1. Attempting to reach brokerA01:9092 with a metadata fetch, cannot > > reach, > > > attempt to reach next broker > > > 2. Attempting to reach brokerA02:9092 with a metadata fetch, cannot > > reach, > > > attempt to reach next broker > > > 3. Attempting to reach brokerA03:9092 with a metadata fetch, cannot > > reach, > > > attempt to reach next broker > > > 4. Attempting to reach brokerB01:9092 with a metadata fetch, able to > > reach, > > > begin exchange with reachable cluster > > > > > > I have a feeling that this would not work, but I don't really have any > > > evidence to substantiate it at this point. > > > > > > Anyone have any experience on this sort of a situation? > > > The intended goal is more to ensure that the messages end up on *some > > > *cluster, not > > > necessarily a particular cluster. > > > > > > Best, > > > > > > On Wed, Aug 21, 2019 at 3:28 AM David Jacot <dja...@confluent.io> > wrote: > > > > > > > Hello, > > > > > > > > As of today, the producer is able to talk to only one Kafka cluster. > > > > *bootstrap.servers* is to provide a list of brokers belonging to the > > same > > > > cluster to ensure at least one is available. > > > > > > > > In your case, you have to replicate the data from the first cluster > to > > > the > > > > second cluster with mirror maker for instance. > > > > > > > > Best, > > > > David > > > > > > > > On Mon, Aug 12, 2019 at 11:13 AM lsroudi abdel <lsro...@gmail.com> > > > wrote: > > > > > > > > > I guess it more about replication, you can push your data in one > > > choosen > > > > > cluster and replicate your data to the second one by using mirror > > maker > > > > or > > > > > confluent replicator or the new open sourced project by LinkedIn, > > > > > "Brooklin" > > > > > > > > > > Le lun. 12 août 2019 à 10:19, Garvit Sharma <eng.gar...@gmail.com> > a > > > > > écrit : > > > > > > > > > > > Thanks, Isroudi. But in my usecase there are two separate > zookeeper > > > as > > > > > > well. Let me know how would it handle. > > > > > > > > > > > > On Mon, Aug 12, 2019 at 1:45 PM lsroudi abdel <lsro...@gmail.com > > > > > > wrote: > > > > > > > > > > > > > If it is two cluster it mean you have two zookeeper, I guess > you > > > > can't > > > > > do > > > > > > > that, I f you have one zookeeper it will be ok, in the case you > > > have > > > > > one > > > > > > > zookeeper it's just an architecture with replica across two > data > > > > > center, > > > > > > I > > > > > > > hope it clear for you > > > > > > > > > > > > > > Le lun. 12 août 2019 à 09:22, Garvit Sharma < > > eng.gar...@gmail.com> > > > a > > > > > > > écrit : > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > I have 2 kafka clusters in different data-centers so can I > > > provide > > > > > the > > > > > > > dns > > > > > > > > hostnames of both the clusters separated by comma in > > > > > > *bootstrap.servers* > > > > > > > > key in producer config ? > > > > > > > > > > > > > > > > If I provide two different clusters in *bootstrap.servers > *then > > > how > > > > > > would > > > > > > > > the events get published ? > > > > > > > > Would events get published to both the clusters or either of > > them > > > > > > > randomly > > > > > > > > ? > > > > > > > > > > > > > > > > Looking forward to hearing from you. > > > > > > > > > > > > > > > > Thanks > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > Sent from my mobile device >