在研究和测试Kafka时,一个疑问出现了:
Kafka是如何在一切都不顺利的情况下处理唱片制作的?
我知道消费者的投票有一个超时时间,它会不时地保持新记录的投票,直到Kafka重新上线。
我还知道制作者有一个队列,它被添加到。这是一个将内容推送到kafka的队列,但是如果整个kafka集群都关闭了怎么办?
由于显而易见的原因,kafka集群不再接收记录,但是客户端是如何接收记录的呢?
使用Kafka的Spring,有任何机制来处理这个问题吗?
在研究和测试Kafka时,一个疑问出现了:
Kafka是如何在一切都不顺利的情况下处理唱片制作的?
我知道消费者的投票有一个超时时间,它会不时地保持新记录的投票,直到Kafka重新上线。
我还知道制作者有一个队列,它被添加到。这是一个将内容推送到kafka的队列,但是如果整个kafka集群都关闭了怎么办?
由于显而易见的原因,kafka集群不再接收记录,但是客户端是如何接收记录的呢?
使用Kafka的Spring,有任何机制来处理这个问题吗?
2条答案
按热度按时间ao218c7q1#
如果所有的kafka代理都关闭了,那么就没有数据处理了。您的数据流丢失。我假设,如果您有3个或更多的kafka代理,那么所有节点同时崩溃是很少见的。
如果任何一个节点关闭,那么devops作业应该捕获该节点并尝试重新启动它。如果重启失败,那么它应该尝试启动一个新节点并将其添加到kafka集群。这种自动化非常复杂,需要devops团队来实现和维护这个过程。
hts6caw32#
这是非常罕见的场景,但为了解决这类问题并管理kafka传入的高吞吐量,kafka提供了mirror maker工具,它可以帮助创建集群的其他副本。如果当前集群关闭,生产者必须向mirror maker代理发送消息。https://cwiki.apache.org/confluence/pages/viewpage.action?pageid=27846330