Apache camel 驼峰和负载平衡器

Apache camel 驼峰和负载平衡器,apache-camel,Apache Camel,我正在使用camel实现一个路由,该路由从数据库加载数据,然后在生成结果之前对其应用一些处理,这些结果将再次保存在数据库中。 这是web应用程序的一部分 我的问题是这场战争将由一个负载平衡器部署到两台服务器上。然后将有两个驼峰上下文,其中两个路由在同一数据库上执行相同的处理 我将讨论两条路线正在处理同一记录的情况。如何处理此问题以防止路由两次执行相同的作业?如果需要进行此设置以便每个服务器都可以接收相同的记录,则需要一个。您需要确保您的幂等存储库在您的机器之间是相同的。使用数据库作为存储库是一个

我正在使用camel实现一个路由,该路由从数据库加载数据,然后在生成结果之前对其应用一些处理,这些结果将再次保存在数据库中。 这是web应用程序的一部分

我的问题是这场战争将由一个负载平衡器部署到两台服务器上。然后将有两个驼峰上下文,其中两个路由在同一数据库上执行相同的处理


我将讨论两条路线正在处理同一记录的情况。如何处理此问题以防止路由两次执行相同的作业?

如果需要进行此设置以便每个服务器都可以接收相同的记录,则需要一个。您需要确保您的幂等存储库在您的机器之间是相同的。使用数据库作为存储库是一个简单的选择。如果您没有数据库,可以选择hazelcast回购


可能存在的问题是确定记录中的唯一性,例如订单号、客户+日期/时间或某些不断增加的事务ID号。

负载平衡器是否仅向两台服务器中的一台发送请求?如果是这样,那么只有一台服务器在处理记录?如果不是,您能更好地解释为什么2个CamelContext同时处理同一条记录吗?此外,这个问题实际上并不是特定于Camel的,而是更一般的体系结构问题。路由配置为使用“计时器”定期运行。所以它们都在两台服务器上运行。