我需要在Camel (2.23.0)中实现idempotent consumer pattern,并且正在寻找可能的实现。目前,我只能实现JdbcMessageIdRepository或JpaMessageIdRepository,我想知道在处理并发请求时,这些实现是否是线程安全的?我在Camel Github中检查了这些类的源代码,但没有发现任何阻止/处理并发访问的代码。
有人能证实这一点吗?非常感谢!
发布于 2019-05-21 14:01:04
Short Answer:是(在具有主键的DB表上)
HTTP:我今天尝试了一下(使用JMeter的并行控制器插件),注意到如果我没有在CAMEL_MESSAGEPROCESSED表上设置主键,那么在触发多个并发的HTTP请求时就会得到重复的条目。但是,如果我将一个主键添加到这个表中(也是camel文档所推荐的),idempotent消费者就会按预期运行。
可以安全地说同步是由表上的主键机制负责的吗?
我的意思是,只有一个Request-thread成功地向CAMEL_MESSAGEPROCESSED表添加了一行,从我在测试期间观察到的情况来看,另一个Request被标记为重复的
Camel (exchangeProperty(Exchange.DUPLICATE_MESSAGE)=true)https://stackoverflow.com/questions/56222787
复制相似问题