在大型集群中,如何在转移到下一个节点之前检查kafka节点重启是否完全正常?

nfs0ujit  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(228)

有没有一个更深入的查询或终结点可以让kafka告诉我,它已经被分区覆盖了,它已经重新加入集群,它可以与所有列出的代理和zk节点进行通信,并且日志中没有java异常?
也许有一个关键的日志条目我可以找?像这样的 [GroupCoordinator ####]: Assignment received from leader for group X ? 但也有一些这样的信息。

更多细节

目前,我们对状态框使用chef automation,对容器版本使用kubernetes,所有这些都在启动时进行大量tcp端口健康检查,当端口可用时,移动到下一个节点。
但是,我们已经看到节点在完成追赶或移动分区之前就已经准备好了端口。这是一个问题,因为当我们将replica factor设置为3,并且假设一行中的3个节点重新启动时,如果在此期间接收到数据,那么这些分区可能会丢失。或者其他部分,例如3个副本中只有1个可用,这样节点就开始复制到其他节点上,而其他节点则会恢复(这样做的时间似乎完全是随机的,因为某些分区的使用率远远高于其他分区)。或者许多其他的条件使它无法正常工作,比如java异常不与zk通信、ssl证书过期、获取程序问题等等。
例如,今天我正在监视日志,以确定在移动到下一个节点之前,所有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

Kafka0.10.2.1,因为很难更新我们的服务器和订户数量(超过200多个,跨越1/2打pop)。但是,如果有人能证明更新的版本有某种类型的运行状况或状态端点,或者查询服务器运行状况并调用所有分区的方法,我们将努力升级到该版本。

外部工具?

我们还经营Kafka经理以及在大多数流行音乐洞穴。也许它们有一个api,我可以查询特定节点的完整运行状况?

奖励:在复制主题下监视

也许还可以使用这些工具检查复制不足的主题/分区?如果阈值降得太低,请暂停,直到副本计数恢复,然后继续滚动重新启动。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题