CuratorFrameworkImpl-后台异常无法重试或已放弃重试



策展人框架版本-4.3.0,Zookeeper版本-5.5.0

我们已经在Kubernetes上部署了apache atlas,它使用Zookeeper从两个atlas pod中选出一个作为领导者。我们正在运行三个zookeeper pod(3节点集群(,一个pod宕机不会产生任何问题。当一个动物园管理员吊舱关闭时,动物园管理员集群仍然健康,并且有一名动物园管理员负责人可用。我通过进入动物园管理员舱并检查动物园管理员状态来测试这一点但是策展人框架抛出以下错误-

[main:] ~ Background exception was not retry-able or retry gave up (CuratorFrameworkImpl:685)
java.net.UnknownHostException: zookeeper-2.zookeeper-headless.atlas.svc.cluster.local: Name or service not known
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:61)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:445)
at org.apache.curator.utils.DefaultZookeeperFactory.newZooKeeper(DefaultZookeeperFactory.java:29)
at org.apache.curator.framework.imps.CuratorFrameworkImpl$2.newZooKeeper(CuratorFrameworkImpl.java:196)
at org.apache.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:101)
at org.apache.curator.HandleHolder.getZooKeeper(HandleHolder.java:57)
at org.apache.curator.ConnectionState.reset(ConnectionState.java:201)
at org.apache.curator.ConnectionState.start(ConnectionState.java:111)
at org.apache.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:214)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:314)
at org.apache.atlas.web.service.CuratorFactory.initializeCuratorFramework(CuratorFactory.java:88)
at org.apache.atlas.web.service.CuratorFactory.<init>(CuratorFactory.java:78)
at org.apache.atlas.web.service.CuratorFactory.<init>(CuratorFactory.java:73)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1152)

zookeeperConnectionString="zookeeper-0.zookeeper headless.atlas.svc.cluster.local:2181,zookeeper.1.zookeeperheadless.artlas.svc.coluster.local:2181;

我们面临的问题是,当我们尝试运行leaderLatch.start((时,它不会返回任何错误,但zookeeper中没有创建相应的znode

您看到错误的原因是在Kubernetes上,当pod重新启动时,它的DNS记录也会在短时间内被删除,直到pod再次出现。在您的情况下,不会出现问题,因为策展人将连接到CS中的另一个ZK服务器。

DNS记录审查/清理在同一问题上没有帮助。

我向你推荐对我有帮助的https://github.com/apache/shardingsphere/issues/19079

最新更新