当前位置 : 主页 > 编程语言 > java >

Spring Integration 的Zookeeper 支持

来源:互联网 收集:自由互联 发布时间:2023-02-04
版本 4.2 在 4.2 版中为框架添加了Zookeeper支持,其中包括: 元数据存储 锁定注册表 领导力事件处理 您需要将此依赖项包含在项目中: dependency groupIdorg.springframework.integration/groupId artif

Spring Integration 的Zookeeper 支持_zookeeper

版本 4.2 在 4.2 版中为框架添加了 Zookeeper 支持,其中包括:

  • 元数据存储
  • 锁定注册表
  • 领导力事件处理

您需要将此依赖项包含在项目中:

<dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-zookeeper</artifactId> <version>6.0.0</version></dependency>

动物园管理员元数据存储

您可以在需要的地方使用任何位置,例如持久文件列表筛选器。 有关详细信息,请参阅元数据存储。 以下示例使用 XML 配置 Zookeeper 元数据存储:​​ZookeeperMetadataStore​​​​MetadataStore​​

<bean id="client" class="org.springframework.integration.zookeeper.config.CuratorFrameworkFactoryBean"> <constructor-arg value="${connect.string}" /></bean><bean id="meta" class="org.springframework.integration.zookeeper.metadata.ZookeeperMetadataStore"> <constructor-arg ref="client" /></bean>

以下示例显示了如何使用 Java 配置 Zookeeper 元数据存储:

@Beanpublic MetadataStore zkStore(CuratorFramework client) { return new ZookeeperMetadataStore(client);}

动物园管理员锁注册表

可以在需要的地方使用,例如在具有共享 .​​ZookeeperLockRegistry​​​​LockRegistry​​​​MessageStore​​

A 用于根据键“查找”锁(聚合器使用 )。 默认情况下,锁在 zookeeper 中维护在以下路径下:。 可以通过提供 的实现来自定义路径,如以下示例所示:​​LockRegistry​​​​correlationId​​​​ZookeeperLockRegistry​​​​/SpringIntegration-LockRegistry/​​​​ZookeeperLockRegistry.KeyToPathStrategy​​

public interface KeyToPathStrategy { String pathFor(String key); boolean bounded();}

如果策略从 返回,则不需要收获未使用的锁。 对于无界策略(例如默认策略),您需要定期调用以从内存中删除旧的未使用锁。​​true​​​​isBounded​​​​expireUnusedOlderThan(long age)​​

字符串版本为5.5.6,支持通过自动清理ZkLock的缓存。 有关更多信息,请参阅其 JavaDocs。​​ZookeeperLockRegistry​​​​ZookeeperLockRegistry.locks​​​​ZookeeperLockRegistry.setCacheCapacity()​​

动物园管理员领导事件处理

以下示例使用 XML 在 Zookeeper 中配置领导者选举的应用程序:

<int-zk:leader-listener client="client" path="/siNamespace" role="cluster" />

​​client​​是对豆子的引用。 A 可用。 当选领导者后,将发布该角色的 。 将启动该角色中的任何终结点。 撤销领导权时,将发布角色的 。 该角色中的任何终结点都将停止。 有关更多信息,请参阅终端节点角色。​​CuratorFramework​​​​CuratorFrameworkFactoryBean​​​​OnGrantedEvent​​​​cluster​​​​OnRevokedEvent​​​​cluster​​

您可以使用 Java 配置创建领导者发起人的实例,如以下示例所示:

@Beanpublic LeaderInitiatorFactoryBean leaderInitiator(CuratorFramework client) { return new LeaderInitiatorFactoryBean() .setClient(client) .setPath("/siTest/") .setRole("cluster");}

从版本 5.3 开始,在 上公开了一个选项,用于对外部提供的实例进行更多配置控制。 只需提供 or 选项之一,但不能同时提供两个选项;这些选项在内部创建一个具有 for 选项的实例。​​candidate​​​​LeaderInitiatorFactoryBean​​​​Candidate​​​​candidate​​​​role​​​​role​​​​DefaultCandidate​​​​UUID​​​​id​​

上一篇:Java中的StringBuilder类
下一篇:没有了
网友评论