Kafka单机已连接,ZK连接失败,相关信息无法刷新
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
- [x] 我已经在 [issues](https://github.com/didi/KnowStreaming/issues) 搜索过相关问题了,并没有重复的。
你是否希望来认领这个Bug。
「 Y / N 」
### 环境信息
* KnowStreaming version : 3.3.0
* Operating System version : rhel7.4
* Java version : 使用docker-compose latest镜像
### 重现该问题的步骤
1. docker-compose启动集群
2. 在页面配置单机kafka,配置如下

3. 显示集群状态异常,同时后端出现报错


### 预期结果
正常连接ZK并展示kafka信息
### 实际结果
无法连接ZK
---
如果有异常,请附上异常Trace:
```
2023-08-24 12:30:03.637 ERROR 11 --- [-2-10-thread-82] k.s.k.c.s.h.c.AbstractHealthCheckService : method=checkAndGetResult||clusterParam=ZookeeperParam(zkAddressList=[Tuple{v1=192.168.162.12, v2=2181}], zkConfig=null)||clusterHealthConfig=HealthAmountRatioConfig(amount=100000, ratio=0.8)||errMsg=exception!
java.lang.NullPointerException: null
at com.xiaojukeji.know.streaming.km.core.service.health.checker.zookeeper.HealthCheckZookeeperService.checkWatchCount(HealthCheckZookeeperService.java:188)
at com.xiaojukeji.know.streaming.km.core.service.health.checker.AbstractHealthCheckService.checkAndGetResult(AbstractHealthCheckService.java:50)
at com.xiaojukeji.know.streaming.km.task.kafka.health.AbstractHealthCheckTask.checkAndGetResult(AbstractHealthCheckTask.java:109)
at com.xiaojukeji.know.streaming.km.task.kafka.health.AbstractHealthCheckTask.lambda$calAndUpdateHealthCheckResult$0(AbstractHealthCheckTask.java:60)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2023-08-24 12:30:03.637 INFO 11 --- [-2-10-thread-82] .x.k.s.k.c.s.v.BaseVersionControlService : method=doVCHandler||clusterId=2||action=ApproximateDataSize||type=ZookeeperMetric||param={"clusterPhyId":2,"metricName":"ApproximateDataSize","zkAddressList":[{"v1":"192.168.162.12","v2":2181}]}
2023-08-24 12:30:03.638 ERROR 11 --- [-2-10-thread-82] k.s.k.c.s.h.c.AbstractHealthCheckService : method=checkAndGetResult||clusterParam=ZookeeperParam(zkAddressList=[Tuple{v1=192.168.162.12, v2=2181}], zkConfig=null)||clusterHealthConfig=HealthAmountRatioConfig(amount=524288000, ratio=0.8)||errMsg=exception!
java.lang.NullPointerException: null
at com.xiaojukeji.know.streaming.km.core.service.health.checker.zookeeper.HealthCheckZookeeperService.checkApproximateDataSize(HealthCheckZookeeperService.java:260)
at com.xiaojukeji.know.streaming.km.core.service.health.checker.AbstractHealthCheckService.checkAndGetResult(AbstractHealthCheckService.java:50)
at com.xiaojukeji.know.streaming.km.task.kafka.health.AbstractHealthCheckTask.checkAndGetResult(AbstractHealthCheckTask.java:109)
at com.xiaojukeji.know.streaming.km.task.kafka.health.AbstractHealthCheckTask.lambda$calAndUpdateHealthCheckResult$0(AbstractHealthCheckTask.java:60)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2023-08-24 12:30:03.639 INFO 11 --- [-2-10-thread-82] .x.k.s.k.c.s.v.BaseVersionControlService : method=doVCHandler||clusterId=2||action=NumAliveConnections||type=ZookeeperMetric||param={"clusterPhyId":2,"metricName":"NumAliveConnections","zkAddressList":[{"v1":"192.168.162.12","v2":2181}]}
2023-08-24 12:30:09.672 INFO 11 --- [kTP-6-thread-14] kafka.zookeeper.ZooKeeperClient : [ZooKeeperClient KS-ZK-ClusterPhyId-1] Closed.
2023-08-24 12:30:09.672 ERROR 11 --- [kTP-6-thread-14] c.x.k.s.k.p.kafka.KafkaAdminZKClient : method=createZKClient||clusterPhyId=1||clusterPhy=ClusterPhy(id=1, createTime=Thu Aug 24 10:18:49 GMT+08:00 2023, updateTime=Thu Aug 24 11:28:26 GMT+08:00 2023, name=192.168.162.12, bootstrapServers=192.168.162.12:9092, kafkaVersion=2.8.1, zookeeper=192.168.162.12:2181, clientProperties={}, jmxProperties={"jmxPort":9999,"maxConn":10,"openSSL":false}, zkProperties=, authType=0, runState=1, description=)||msg=create ZK Client failed||errMsg=exception
java.lang.InterruptedException: null
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2067)
at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:273)
at kafka.zookeeper.ZooKeeperClient.(ZooKeeperClient.scala:125)
at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1948)
at kafka.zk.KafkaZkClient.apply(KafkaZkClient.scala)
at com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaAdminZKClient.createZKClient(KafkaAdminZKClient.java:137)
at com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaAdminZKClient.createZKClient(KafkaAdminZKClient.java:121)
at com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaAdminZKClient.getClient(KafkaAdminZKClient.java:45)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl.getKafkaController(KafkaZKDAOImpl.java:153)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl$$FastClassBySpringCGLIB$$6e05ff5c.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl$$EnhancerBySpringCGLIB$$64aa1c82.getKafkaController()
at com.xiaojukeji.know.streaming.km.core.service.kafkacontroller.impl.KafkaControllerServiceImpl.getControllerFromZKClient(KafkaControllerServiceImpl.java:186)
at com.xiaojukeji.know.streaming.km.core.service.kafkacontroller.impl.KafkaControllerServiceImpl.getControllerFromKafka(KafkaControllerServiceImpl.java:45)
at com.xiaojukeji.know.streaming.km.task.kafka.metadata.SyncControllerTask.processClusterTask(SyncControllerTask.java:36)
at com.xiaojukeji.know.streaming.km.task.kafka.metadata.AbstractAsyncMetadataDispatchTask.lambda$asyncProcessSubTask$0(AbstractAsyncMetadataDispatchTask.java:33)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2023-08-24 12:30:09.672 ERROR 11 --- [kTP-6-thread-14] k.s.k.c.s.k.i.KafkaControllerServiceImpl : method=getControllerFromZKClient||clusterPhyId=1||errMsg=exception
com.xiaojukeji.know.streaming.km.common.exception.NotExistException: kafka kafka-zk-client not exist due to create failed
at com.xiaojukeji.know.streaming.km.persistence.kafka.KafkaAdminZKClient.getClient(KafkaAdminZKClient.java:47)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl.getKafkaController(KafkaZKDAOImpl.java:153)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl$$FastClassBySpringCGLIB$$6e05ff5c.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at com.xiaojukeji.know.streaming.km.persistence.kafka.zookeeper.service.impl.KafkaZKDAOImpl$$EnhancerBySpringCGLIB$$64aa1c82.getKafkaController()
at com.xiaojukeji.know.streaming.km.core.service.kafkacontroller.impl.KafkaControllerServiceImpl.getControllerFromZKClient(KafkaControllerServiceImpl.java:186)
at com.xiaojukeji.know.streaming.km.core.service.kafkacontroller.impl.KafkaControllerServiceImpl.getControllerFromKafka(KafkaControllerServiceImpl.java:45)
at com.xiaojukeji.know.streaming.km.task.kafka.metadata.SyncControllerTask.processClusterTask(SyncControllerTask.java:36)
at com.xiaojukeji.know.streaming.km.task.kafka.metadata.AbstractAsyncMetadataDispatchTask.lambda$asyncProcessSubTask$0(AbstractAsyncMetadataDispatchTask.java:33)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2023-08-24 12:30:09.672 ERROR 11 --- [kTP-6-thread-14] .t.k.m.AbstractAsyncMetadataDispatchTask : method=asyncProcessSubTask||taskName=SyncControllerTask||clusterPhyId=1||taskResult=TaskResult(code=-1, message=kafka kafka-zk-client not exist due to create failed)||msg=failed
```
Contributor guide
Assessment
This issue has not been assessed yet.