Zookeeper Spring Integration是否具有与IntegrationFlow“所有权”相关的领导者选举功能?

agxfikkp  于 2023-01-06  发布在  Apache
关注(0)|答案(1)|浏览(158)

我已经学习Spring Integration大约一个月了,突然间我明白了:如果您要求在任何时间点只有IntegrationFlow的一个示例,但是您有Spring应用程序的多个示例运行在同一个环境中,该怎么办?
这意味着,我可能有,比方说,我的应用程序的3个节点/示例运行在开发环境中,并且所有3个都有@Configuration源文件定义相同的IntegrationFlow bean。但是我只希望3个中的一个同时运行流。这听起来像是在领导者选举空间中解决的问题。我很想使用像领事甚至ZK这样的东西,但我想我会接触社区,以防SI甚至Spring通常可以提供一个更简单的解决方案,而不需要运行这些共识系统的所有操作开销和基础设施。
提前感谢任何和所有的指导!

q8l4jmvw

q8l4jmvw1#

请参阅文档:
https://docs.spring.io/spring-integration/docs/current/reference/html/endpoint.html#endpoint-roles
从版本4.2开始,可以将端点分配给角色。角色允许端点作为一个组启动和停止。这在使用领导选举时特别有用,在这种情况下,可以在授予或撤消领导权时分别启动或停止一组端点。为此,框架在应用程序上下文中注册了一个SmartLifecycleRoleController bean,名称为IntegrationContextUtils.INTEGRATION_LIFECYCLE_ROLE_CONTROLLER
以及
https://docs.spring.io/spring-integration/docs/current/reference/html/endpoint.html#leadership-event-handling
终结点组可以分别基于授予或撤消的领导权来启动和停止。这在共享资源必须仅由单个示例使用的群集方案中很有用。轮询共享目录的文件入站通道适配器就是一个这样的示例。...
目前支持Zookeeper和Hazelcast。
https://docs.spring.io/spring-integration/docs/current/reference/html/zookeeper.html#zk-leadership
https://docs.spring.io/spring-integration/docs/current/reference/html/hazelcast.html#hazelcast-leader-election

相关问题