我是策展人和zk的新手 - 并希望与社区其他成员仔细检查我的理解.似乎策展人的文档不是很好.
策展人的持久性短暂节点是否基本上是短暂的znode,但是一旦断开连接,还有额外的机制来重新建立连接?还有其他不明显的差异吗?
ps是否有zk的社区/讨论组(甚至更好,策展人)?一个简单的谷歌搜索没有发现任何东西.
distributed-computing distributed-system apache-zookeeper apache-curator
我正在使用策展人框架连接到Zookeeper服务器,但遇到了奇怪的DNS解析问题。这是线程的jstack转储,
#21 prio=5 os_prio=0 tid=0x0000000001888800 nid=0x3a46 runnable [0x00007f25e69f3000]
java.lang.Thread.State: RUNNABLE
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at org.apache.zookeeper.client.StaticHostProvider.resolveAndShuffle(StaticHostProvider.java:117)
at org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:81)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:1096)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:1006)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:804)
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:679)
at com.netflix.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:72)
- locked <0x00000000fd761f40> (a com.netflix.curator.HandleHolder$1)
at com.netflix.curator.HandleHolder.getZooKeeper(HandleHolder.java:46)
at com.netflix.curator.ConnectionState.reset(ConnectionState.java:122)
at com.netflix.curator.ConnectionState.start(ConnectionState.java:95)
at com.netflix.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:137)
at com.netflix.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:167)
Run Code Online (Sandbox Code Playgroud)
该线程似乎卡在本机方法中,并且永远不会返回。它也非常随机地发生,因此无法始终如一地再现。有任何想法吗?
我在java中使用curator框架与ZNodes进行交互.我们如何得到节点统计数据,如last_modified时间和创建时间等.我可以使用kazoo框架在python中做同样的事情.
from kazoo.client import KazooClient
zk_client = KazooClient(hosts='127.0.0.1:2181')
zk_client.start()
data, stat = zk_client.get("/my/favorite")
Run Code Online (Sandbox Code Playgroud)
参考.链接:kazoo
我尝试通过策展人搜索类似的支持,但无法获得结果.请在这里帮忙.谢谢.
我们正在创建大型项目。使用curator与zk服务器进行交互的spring-boot项目,我们应该创建多少个CuratorFramework实例?CuratorFramework实例可以处理什么级别的工作?
我正在使用带有 curator 2.12.0 的 Zookeeper。
我通过使用观察者调用 getChildren (我事先不知道完整的节点路径)来成功观察新节点,该观察者提交任务以再次使用观察者调用 getChildren 。现在我想观看节点删除并且仅删除。我用观察者调用 checkExists 。但是,如果节点由于某种原因不存在,它实际上将成为节点创建的观察者,这在我的情况下永远不会发生。所以我会留下越来越多的“鞭打”观察者,我想这会浪费一些资源。
如何仅在节点存在时删除观察者或添加观察者?
我使用以下 Apache Curator Maven 依赖项:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-async</artifactId>
<version>4.0.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在本地,我已经启动了zookeeper-3.4.13服务器
我尝试EPHEMERAL使用以下代码创建ZNode:
int sleepMsBetweenRetries = 100;
int maxRetries = 3;
RetryPolicy retryPolicy = new RetryNTimes(maxRetries, sleepMsBetweenRetries);
CuratorFramework client = CuratorFrameworkFactory.newClient("127.0.0.1:2181", retryPolicy);
client.start();
String taskPathZombie = "/tasks/b5957aa6-e250-41e0-a39b-521da61ca937";
client.create().withMode(CreateMode.EPHEMERAL).forPath(taskPathZombie);
Run Code Online (Sandbox Code Playgroud)
但它失败并出现以下异常:
Caused by: org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /tasks/b5957aa6-e250-41e0-a39b-521da61ca937
at org.apache.zookeeper.KeeperException.create(KeeperException.java:103) ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1525) ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1181) ~[curator-framework-4.0.1.jar:4.0.1]
at org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1158) ~[curator-framework-4.0.1.jar:4.0.1]
at org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:64) ~[curator-client-4.0.1.jar:na]
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:100) ~[curator-client-4.0.1.jar:na]
at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1155) ~[curator-framework-4.0.1.jar:4.0.1] …Run Code Online (Sandbox Code Playgroud) 我目前在Zookeeper集合中有3台机器 - 我已经设置了配置文件,并且整体中的3台机器可以相互通信.
领导选举到底是什么?我是否需要使用LeaderLatch来启动领导者选举,还是在正确设置配置文件后自动执行?
根据文件
CuratorFramework实例是完全线程安全的.您应该在应用程序中为每个ZooKeeper集群共享一个CuratorFramework.
它还声明应该在执行任何其他操作之前调用方法start.是应该在每次操作之前调用此方法,还是在初始化后调用一次就够了?
想了解Zookeeper中的ServiceRegistry和Discovery在微服务方面的区别