我们已经设置了一个Zookeeper仲裁(3个节点)和3个kafka代理。生产者无法将记录发送到kafka ---数据丢失。在调查期间,我们(仍然)可以SSH到该代理,并观察到代理磁盘已满。我们删除了主题日志以清除一些磁盘空间,并且代理再次按预期运行。
鉴于我们仍然可以通过SSH方式连接到该代理,(我们现在看不到日志),但是我认为Zookeeper可以听到该代理的心跳信号,并且没有考虑失败吗?处理此类事件的最佳做法是什么?
答案 0 :(得分:3)
最佳做法是避免这种情况的发生!
您需要监视代理的磁盘使用情况,并在可用磁盘空间不足的情况下提前发出警报。
您需要在topics上设置保留限制,以确保定期删除数据。
您还可以使用主题策略(请参阅ImageView
)来控制创建/更新主题时允许的保留时间/大小,以确保主题无法填满磁盘。
您执行的恢复步骤还可以,但是您确实不想填充磁盘以保持较高的群集可用性。