是否有一个更深入的查询或端点,可以告诉我它已经被分区所捕获,它已经重新加入了集群,它可以与所有列出的代理和Zk节点对话,并且日志中没有异常。
也许我能找到一个关键的日志条目?有点像[GroupCoordinator ####]: Assignment received from leader for group X?但也有一些这样的信息。
更多细节
目前,我们在容器版本中使用Chef自动化的状态框和Kubernetes --所有这些都在启动时对TCP端口进行健康检查,当端口可用时,转移到下一个节点。
然而,我们已经看到节点准备好了它们的端口--在它们完成追赶或移动分区之前。这是一个问题,因为当我们将复制因子设置为3,并在一行中重新启动3个节点时,如果在此期间接收数据,则这些分区可能会丢失。或者其他的部分,比如三个副本中只有一个可用,因此节点开始复制到其他节点上-而其他节点则返回(时间似乎完全随机,因为一些分区比其他分区使用得更多)。或者许多其他条件使它无法正常运行,例如不与Zk对话的java异常、SSL证书过期、Fetcher问题等等。
例如,今天我监视所有50+ ReplicaFetcherThreads在转移到下一个节点之前关闭的日志。在这个流行音乐里,这个时间大约是2-5分钟。但是,在另一个流行音乐中,最多需要20分钟!
配置
我们运行各种配置,但大多数配置都具有这些类型的设置(通过不同的调优):
controlled.shutdown.enable=true
controlled.shutdown.max.retries=3
controlled.shutdown.retry.backup.ms=5000
default.replication.factor=3
group.max.session.timeout.ms=60000
group.min.session.timeout.ms=10000
num.partitions=5
num.replica.fetchers=4
session.timeout.ms=30000卡夫卡0.10.2.1目前很难用我们拥有的服务器和订户数量进行更新(超过200+,超过了1/2打PoPs)。但是,如果有人能够显示新版本具有某种类型的Health或状态端点或查询服务器运行状况的方式,并调用所有分区,我们将努力升级到该版本。
外部工具?
我们还经营卡夫卡经理和博罗在大多数持久性有机污染物。也许那些有API,我可以查询那些特定节点的完全健康状态?
奖励:监视主题复制下的监视器
也许还会检查使用这些工具复制的主题/分区?如果阈值太低,请暂停,直到副本计数恢复,然后继续滚动重新启动。
发布于 2022-11-19 17:04:58
几年后我一直在关注我最初的问题。
简单地说,卡夫卡的旧版本是没有办法的。
Kafka需要手动监视日志,以确定节点在移动到下一个节点之前是否正常和同步。而且日志很大,有大量不同的日志来表示它已经准备好了。
也许是新版本的卡夫卡(2.0+?)已经解决了这个问题。
https://stackoverflow.com/questions/52154426
复制相似问题