当其中一个经纪人倒台时,给Kafka发信息安全吗?

7cwmlq89  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(303)

我的公司一直在三节点集群上运行kafka。让我们把节点称为master,slave1,slave2。
所有三个节点都运行Kafka。
但是,我发现i/o在安装分区中出错( /mnt/ )在主代理上,甚至根也不能读取、写入或执行其中的任何文件。奇怪的是Kafka怎么还在跑。
其他两个经纪人都很好,但我认为只有一个真正发挥作用。
我想替换主机上损坏的磁盘,然后在主机上重新启用Kafka。
据我所知,当我杀死Kafka的主人,其中一个追随者将选举自己作为一个领导人,它应该工作良好。
我担心的是,
当kafka关闭时不停地向主服务器发送消息可能会使主服务器混乱(我传递了一个逗号分隔的列表,列出了消费者中所有三个经纪人,但我需要确保它是安全的)
集群可能配置不好,所以它不是一个三节点集群,而是一个三节点集群,mater将不能容错。
例如,在从属1上,
$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic metric.topic Topic:metric.topic PartitionCount:1 ReplicationFactor:1 Configs: Topic: metric.topic Partition: 0 Leader: 1 Replicas: 1 Isr: 1 在从属2上, Topic:metric.topic PartitionCount:1 ReplicationFactor:1 Configs: Topic: metric.topic Partition: 0 Leader: 2 Replicas: 2 Isr: 2 (我无法为master检查此项,因为此处的i/o权限混乱)
这两个看起来是分开运行的,尽管它们从生产者那里收到相同的消息。
我怎样才能确保这两件事不会发生?
尤其是在Kafka的文献中,他们在哪里表达了我的担忧(Kafka文档更可取,因为我需要说服我公司的工程师,这是安全的,因为否则我们将不得不禁用Kafka生产商一天,我们将失去任何日志在这一天。)

rt4zxlrg

rt4zxlrg1#

Kafka的建筑没有主从关系。主题的分区具有处理该分区的引导代理。您可以在kafka主题输出中看到,其中“分区0”的前导是“leader:1”。
你可以在Kafka主题输出中看到你对#2的直觉是正确的。这是两个不同的主题,“从属1”有一个与复制1相关的主题,“从属2”有一个与复制2相关的主题。这意味着这两个代理不属于同一集群。
我很困惑“(我通过一个逗号分隔的名单,所有三个经纪人在消费者,但我需要确保它是安全的)”因为消费者不需要知道经纪人,但Zookeeper。
所以要回答你的问题:
1) 根据Kafka主题的输出,看起来“主”和“从2”在一个集群中。这意味着你可以打倒“主人”,“奴隶2”将被选为新的领导人(我认为slave2是基于“leader:2”的当前leader,尽管这取决于您给代理的id)。当“master”返回时,数据将被复制到他,直到他同步,然后他将成为isr集的一部分。
对于复制因子为n的主题,我们最多可以容忍n-1个服务器故障,而不会丢失提交到日志的任何消息(从http://kafka.apache.org/documentation.html)
2) “slave 2”主机有一个复制因子为2的主题,为了实现这一点,集群中必须至少有2个代理。这让我相信“slave 1”没有正确配置,也不是集群的一部分。

相关问题