我有一个带有集群化 Kafka 服务的 Cloudera 集群。我有两个 Kafka 控制器实例,比如说 C1 和 C2。
当 C1 是活动控制器时,一切似乎都正常。当由于某种原因,C2 成为主动控制器。通过 kafka-console-producer 发送的一些已发送消息没有被 kafka-console-consumer 接收(发送的消息中有一半没有被消费者接收,每两条消息一条)。我不确定这是否是由于活动控制器的更改而无法读取某些分区。
另外,如果我关闭 C1 并且只保持 C2 运行,我还有另一个问题。如果我尝试从 kafka 开始读取以前工作的 Streamsets 流,我会收到错误消息“无法检索主题 XXXX 的元数据”,似乎主题元数据仅存在于 C1 中,在这种情况下它处于脱机状态。
如果我在关闭第一个代理后打开 kafka-console-consumer,则会收到以下异常:
WARN [console-consumer-16627_node10.agatha-cluster-1515508696963-2e45e6d8-leader-finder-thread]:
Failed to find leader for Set(testD-1, testD-0)
(kafka.consumer.ConsumerFetcherManager$LeaderFinderThread)
kafka.common.KafkaException: fetching topic metadata for topics [Set(testD)]
from broker [ArrayBuffer(BrokerEndPoint(183,110.250.17.242,9092))] failed
尝试将kafka与多个经纪人一起使用时我做错了什么?