有没有一个更深入的查询或终结点可以让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,我可以查询特定节点的完整运行状况?
奖励:在复制主题下监视
也许还可以使用这些工具检查复制不足的主题/分区?如果阈值降得太低,请暂停,直到副本计数恢复,然后继续滚动重新启动。
暂无答案!
目前还没有任何答案,快来回答吧!