Spring Integration如何实现Zookeeper集群的集成支持?

2026-05-23 23:571阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计803个文字,预计阅读时间需要4分钟。

Spring Integration如何实现Zookeeper集群的集成支持?

版本 4.2 中为框架增加了 Zookeeper 支持,包括:- 元数据存储- 锁定注册表- 领导力事件处理- 需要包含的依赖项: - `dependency` - `groupId`: `org.springframework.integration` - `artifactId`: `groupId`

版本 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​​

Spring Integration如何实现Zookeeper集群的集成支持?

您可以使用 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​​

标签:Zookeeper

本文共计803个文字,预计阅读时间需要4分钟。

Spring Integration如何实现Zookeeper集群的集成支持?

版本 4.2 中为框架增加了 Zookeeper 支持,包括:- 元数据存储- 锁定注册表- 领导力事件处理- 需要包含的依赖项: - `dependency` - `groupId`: `org.springframework.integration` - `artifactId`: `groupId`

版本 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​​

Spring Integration如何实现Zookeeper集群的集成支持?

您可以使用 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​​

标签:Zookeeper