spring-boot - 使用 Camel SFTP 和 Hazelcast 幂等存储库时重复消息处理
问题描述
我正在使用版本 3.12.0 中的 Camel SFTP 组件和 Hazelcast Idempotent Repository 来防止消息被多个集群节点处理,并使用 readLock=rename 来避免消息在第三方仍在写入时被处理。
IdempotentRepository idempotentRepository = new HazelcastIdempotentRepository(hazelcastInstance, "ftp-consume-reception-map");
from(sftp(hostname + ":" + port + "/" + inputDirectory)
.username(username)
.password(password)
.delay(delay)
.maxMessagesPerPoll(maxMessagesPerPoll)
.move(archiveDirectory)
.moveFailed(errorDirectory)
.idempotent(true)
.idempotentRepository(idempotentRepository)
.passiveMode(true)
.readLock("rename"))
尽管使用 Hazelcast Idempotent Repository 进行了这种配置,但所有集群成员都使用和处理相同的 FTP 消息。我错过了什么 ?
解决方案
推荐阅读
- c# - 我想在 nlog mongo 配置中将集合名称作为变量
- mysql - SQL - 使用另一个表中的值和合法格式检查约束
- php - SQL查询转换为laravel
- google-cloud-platform - 如何增加 Google Analytics 中的“每用户帐户数限制”?
- c++ - 类模板名称中的隐藏朋友与内联命名空间中的另一个符号冲突
- python - 根据R中的特定列值提取行
- angular - 如何通过rxjs从对象数组中过滤出元素数组
- dictionary - 我可以使用 defer 删除地图的元素吗?
- javascript - Axios mock - 多个嵌套的 axios 请求 - 问题以及如何测试它?
- python - QhullError:QH6154 Qhull 精度错误:初始单纯形是平坦的(面 1 与内点共面)