Jms 企业集成分散在多个应用服务器上

Jms 企业集成分散在多个应用服务器上,jms,apache-camel,Jms,Apache Camel,我正在寻找一种方法来聚合从多个应用服务器发送的JMS消息,通过JMS实现负载平衡。问题基本上是这样的: 在注册表单的末尾,http会话中存在一个容器,该容器有两个相同类型的对象。每个对象都需要处理,然后容器需要交付。处理对象是资源密集型的,因此处理被请求(仅异步)并在OpenMQ中排队。JMS消息由两个相互竞争的使用者之一使用,这两个使用者基本上是重复的应用程序服务器,也为web请求提供服务 目前,我只是在集装箱交付上有一个硬编码的延迟,但是随着流量的增加,有很多交付失败,因为对象还没有完成处理

我正在寻找一种方法来聚合从多个应用服务器发送的JMS消息,通过JMS实现负载平衡。问题基本上是这样的:

在注册表单的末尾,http会话中存在一个容器,该容器有两个相同类型的对象。每个对象都需要处理,然后容器需要交付。处理对象是资源密集型的,因此处理被请求(仅异步)并在OpenMQ中排队。JMS消息由两个相互竞争的使用者之一使用,这两个使用者基本上是重复的应用程序服务器,也为web请求提供服务

目前,我只是在集装箱交付上有一个硬编码的延迟,但是随着流量的增加,有很多交付失败,因为对象还没有完成处理。我使用的是ApacheCalme2.6和SpringRemoting,最理想的情况是,每个应用服务器都必须有一个重复的Camel上下文,因此它们将竞争聚合组件


也许每个聚合都有一个临时队列和端点,但我不确定如何去做,尤其是分解。处理这两个对象,然后交付容器的最佳方式是什么?

每个对象完成后,您可以向主题发送消息。消息应该包含上下文id和对象id。然后您将有一个主题的from路由。当收到一条消息时,它会将状态保存在一个简单的db表中,并检查另一个确认是否已经保存。如果是,它将运送集装箱。

是的,很好的建议。不过,我不希望在应用程序数据库上进行同步。它将使用它作为一个工作队列,OpenMQ就是这样做的。