首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Camel - Idempotent Consumer模式是用jdbcMessageIdRepository线程安全实现的吗?

Apache Camel - Idempotent Consumer模式是用jdbcMessageIdRepository线程安全实现的吗?
EN

Stack Overflow用户
提问于 2019-05-20 22:14:39
回答 1查看 547关注 0票数 2

我需要在Camel (2.23.0)中实现idempotent consumer pattern,并且正在寻找可能的实现。目前,我只能实现JdbcMessageIdRepositoryJpaMessageIdRepository,我想知道在处理并发请求时,这些实现是否是线程安全的?我在Camel Github中检查了这些类的源代码,但没有发现任何阻止/处理并发访问的代码。

有人能证实这一点吗?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 14:01:04

Short Answer:是(在具有主键的DB表上)

HTTP:我今天尝试了一下(使用JMeter的并行控制器插件),注意到如果我没有在CAMEL_MESSAGEPROCESSED表上设置主键,那么在触发多个并发的HTTP请求时就会得到重复的条目。但是,如果我将一个主键添加到这个表中(也是camel文档所推荐的),idempotent消费者就会按预期运行。

可以安全地说同步是由表上的主键机制负责的吗?

我的意思是,只有一个Request-thread成功地向CAMEL_MESSAGEPROCESSED表添加了一行,从我在测试期间观察到的情况来看,另一个Request被标记为重复的

代码语言:javascript
复制
Camel (exchangeProperty(Exchange.DUPLICATE_MESSAGE)=true)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56222787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档