当其中一个Kafka副本出现故障时会发生什么

Nik*_*kem 2 apache-kafka

我有一组2个Kafka经纪人和一个复制因子2的主题.如果其中一个经纪人死了,我的生产者能否继续向这个降级的1个节点集群发送新消息?或复制因子2需要2个活动节点并且消息将被拒绝?

Jav*_*era 10

这取决于几个因素:

  • 你的生产者配置是什么?如果配置为"all",则在将消息复制到ISR列表中的所有节点之前,前导代理将不会使用ACK进行应答.此时由您的制作人决定他是否关心ACK.
  • 你对min.insync.replicas有什么价值?如果节点数低于此配置,则在有更多节点可用之前,您的代理负责人将不会接受来自生产者的更多消息.

所以基本上你的制作人可能暂停一段时间,直到更多的节点出现.


Kam*_*ash 5

如果没有,消息将不会被忽略。活动代理的数量少于配置的副本。每当一个新的 Kafka 代理加入集群时,数据就会被复制到该节点。

您可以通过将复制因子配置为 3 或更多并仅启动一个代理来重现此场景。