CuratorFrameworkFactory.builder()方法可以配置以下属性

1. connectStringZooKeeper服务器连接字符串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()方法可以配置以下属性

  1. connectString:ZooKeeper服务连接字符串格式为”host1:port1,host2:port2,…”,多个节点用逗号分隔。

  2. sessionTimeoutMs:会话超时时间,单位为毫秒。

  3. connectionTimeoutMs:连接超时时间,单位为毫秒。

  4. retryPolicy:重试策略,用于处理连接失败或会话过期等异常情况。常用的重试策略有:

RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
  • RetryNTimes:指定重试次数的重试策略。示例代码:
RetryPolicy retryPolicy = new RetryNTimes(3, 1000);
  • RetryOneTime:只重试一次的重试策略。示例代码:
RetryPolicy retryPolicy = new RetryOneTime(1000);
  1. namespace:命名空间,用于在ZooKeeper上创建一个隔离的节点示例代码:
String namespace = "myapp";
  1. aclProvider:ACL提供者,用于设置ZooKeeper节点访问控制列表(ACL)。示例代码:
ACLProvider aclProvider = new DefaultACLProvider();
  1. authorization:授权信息用于连接时进行认证示例代码:
String authorization = "username:password";
  1. threadFactory:线程工厂用于创建线程。示例代码:
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();

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注