当前位置: 首页 > 知识库问答 >
问题:

用jdbcMessageIdRepository实现的Apache骆驼幂等使用者模式是线程安全的吗?

刘博文
2023-03-14

有人能证实吗?Thx非常!

共有1个答案

蒋硕
2023-03-14

简短回答:是(在带有主键的DB表上)

长答案:我今天尝试了一下(使用JMeter的并行控制器插件),注意到如果不在camel_messageprocessed表上设置主键,那么在同时触发多个HTTP请求时会得到重复的条目。但是,如果我向该表添加一个主键(这也是camel docs所建议的),幂等使用者就会像预期的那样工作。

可以说同步是由表上的主键机制来处理的吗?

Camel (exchangeProperty(Exchange.DUPLICATE_MESSAGE)=true)
 类似资料:
  • 我有一个物理服务器,其中运行着两个Apache Camel实例a。两者都包含相同的集成工件。任务是将来自服务器文件系统的文件与由cron作业触发的Apache Camel的文件组件集成。文件处理应该只发生一次。因此,我对同一服务器上的Jdbc存储库使用幂等模式。 总的来说,它工作得很好。但有时,在少数情况下,两个实例都运行并读取文件,因此文件被处理两次。在JDBC数据库中,键也被插入两次(甚至创建

  • 如前所述,如何使用camel kafka手动控制偏移提交?我想使用camel kafka手动提交偏移量。我的路线: ,其中将在将消息发送到另一个主题后进行promise。 问题是,聚合器和Kafka制作者在Kafka消费者负责抵消promise的独立线程中工作。因此,我以 聚合并分派提交偏移量后,是否有可能再次调用使用者线程?

  • 我正在使用Apache Camel2.13.1轮询一个数据库表,其中将有300k行以上。我希望使用幂等使用者EIP来过滤已经处理过的行。 不过,我想知道这个实现是否真的是可伸缩的。我的骆驼上下文是:- 在1908988是request.body.id的情况下,我已经将EIP设置为键上,所以这并不容易合并到我的查询中。 是否有更好的方法将CAMEL_MESSAGEPROCESSED表用作select

  • 我正在使用Spring boot2.1.7。RELEASE和spring-kafka 2.2.7。RELEASE。我正在使用@KafkaListener注释来创建一个消费者,我正在使用消费者的所有默认设置。 这是我的消费者配置: 由于某些原因,我在同一个应用程序中有多个使用者,如下所示。 尽管如此,根据关于“消费者线程安全”的合流文件 一个线程中不能有多个属于同一组的使用者,也不能有多个线程安全地

  • 本文向大家介绍详解C++实现线程安全的单例模式,包括了详解C++实现线程安全的单例模式的使用技巧和注意事项,需要的朋友参考一下 在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式。单例模式分为懒汉模式,跟饿汉模式两种。 首先给出饿汉模式的实现 正解: 在实例化m_instance 变量时,直接调用类的构造函数。顾名思义,在还未使用变量时,已经对m_instance进行赋值,就像很饥饿

  • 我正在运行ApacheArtemis Broker 2.14.0。以下是用户连接配置: 首先,该路由每秒处理约100条消息。随着时间的推移(约6小时),它下降到每秒约25条消息。 在Artemis web控制台的“Consumers”选项卡中,我注意到每个会话都是关闭的,并且经常创建。 从经纪人方面,我们已经提供了足够的12G内存。代理在启用持久性的情况下运行,传入消息大小小于5kb。 驼峰是否会