具有Infinispan的聚集幂等消费者模式

2022-06-27 00:00:00 集群 请求 应用程序 容器 密钥

我创建了一个小项目 ,该项目展示了如何将JBoss Infinispan与Apache Camel和幂等消费者模式一起使用,以确保消息不会在集群环境中被处理两次。 
假设您有一个应用程序,该应用程序必须通过将其部署在多个容器上才能轻松扩展。 但是应用程序必须在整个集群中仅处理一次请求。 解决方案很简单:将Camel中的幂等消费者模式与易于扩展的存储库一起使用。 这就是Infinispan发挥作用的地方。 Infinispan具有极高的可扩展性,高度可用的键/值存储和数据网格。 如果将InfinispanIdempotentRepository与幂等的使用者一起使用,它将创建一个内存中的高速缓存来存储请求,并且在您启动该应用程序的另一个实例时,高速缓存实例将同步,并且所有应用程序中的幂等的使用者将不会处理现有的请求。不再。


通过此项目 (幂等的消费者demo5),您可以启动任意数量的容器,每个容器将从8080(http:// localhost:8080 / idempotent / KEY)开始在新端口上启动剩余端点,如果执行带有密钥的GET请求,对其他任何容器具有相同密钥的后续请求将被拒绝。 在后台,Infinispan将在整个Camel应用程序集群中复制所有已处理的密钥,并确保一致性。

该应用程序的核心是以下路由定义,该路由定义为该应用程序的每个实例查找一个新的空闲端口号:

  1. 相关文章