Dan created KAFKA-5115:
--------------------------
Summary: Use bootstrap.servers to refresh metadata
Key: KAFKA-5115
URL: https://issues.apache.org/jira/browse/KAFKA-5115
Project: Kafka
Issue Type: Improvement
Affects Versions: 0.10.2.0
Reporter: Dan
Currently, it seems that bootstrap.servers list is used only when the producer
starts, to discover the cluster, and subsequent metadata refreshes go to the
discovered brokers directly.
We would like to use the bootstrap.servers list for metadata refresh to support
a failover mechanism by providing a VIP which can dynamically redirect requests
to a secondary Kafka cluster if the primary is down.
Consider the following use case, where "kafka-cluster.local" is a VIP on a load
balancer with priority server pools that point to two different Kafka clusters
(so when all servers of cluster #1 are down, it automatically redirects to
servers from cluster #2).
bootstrap.servers: kafka-cluster.local:9092
1) Producer starts, connects to kafka-cluster.local and discovers all servers
from cluster #1
2) Producer starts producing to cluster #1
3) cluster #1 goes down
4) Producer detects the failure, refreshes metadata from kafka-cluster.local
(which now returns nodes from cluster #2)
5) Producer starts producing to cluster #2
6) cluster #1 is brought back online, and kafka-cluster.local now points to it
again
In the current state, it seems that the producer will never revert to cluster
#1 because it continues to refresh its metadata from the brokers of cluster #2,
even though kafka-cluster.local no longer points to that cluster.
If we could force the metadata refresh to happen against "kafka-cluster.local",
it would enable automatic failover and failback between the clusters.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)