CuratorFrameworkFactory.builder()方法可以配置以下属性:
1. connectString:ZooKeeper服务器的连接字符串。
2. sessionTimeoutMs:ZooKeeper会话超时时间。
3. connectionTimeoutMs:ZooKeeper连接超时时间。
4. retryPolicy:Curator重试策略。
5. namespace:命名空间。
6. aclProvider:ACL提供程序。
7. authorization:授权信息。
8. compressionProvider:压缩提供程序。
9. threadFactory:线程工厂。
10. canBeReadOnly:是否允许客户端在ZooKeeper集群中的所有节点不可用时进入只读模式。
CuratorFrameworkFactory.builder()方法可以配置以下属性:
connectString:ZooKeeper服务的连接字符串,格式为"host1:port1,host2:port2,…",多个节点用逗号分隔。
sessionTimeoutMs:会话超时时间,单位为毫秒。
connectionTimeoutMs:连接超时时间,单位为毫秒。
retryPolicy:重试策略,用于处理连接失败或会话过期等异常情况。常用的重试策略有:
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
RetryPolicy retryPolicy = new RetryNTimes(3, 1000);
RetryPolicy retryPolicy = new RetryOneTime(1000);
String namespace = "myapp";
ACLProvider aclProvider = new DefaultACLProvider();
String authorization = "username:password";
ThreadFactory threadFactory = Executors.defaultThreadFactory();
完整示例代码:
String connectString = "localhost:2181";
int sessionTimeoutMs = 5000;
int connectionTimeoutMs = 5000;
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
String namespace = "myapp";
ACLProvider aclProvider = new DefaultACLProvider();
String authorization = "username:password";
ThreadFactory threadFactory = Executors.defaultThreadFactory();
CuratorFramework client = CuratorFrameworkFactory.builder()
.connectString(connectString)
.sessionTimeoutMs(sessionTimeoutMs)
.connectionTimeoutMs(connectionTimeoutMs)
.retryPolicy(retryPolicy)
.namespace(namespace)
.aclProvider(aclProvider)
.authorization(authorization.getBytes())
.threadFactory(threadFactory)
.build();