企业集成分散 - 跨多个应用服务器收集

时间:2011-11-30 18:10:00

标签: jms apache-camel

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

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

目前,我只是在容器交付方面存在硬编码延迟,但由于流量增加,导致交付失败,因为对象还没有完成处理。我正在使用Apache Camel 2.6和Spring Remoting,Camel Aggregator将是理想的,除了每个应用服务器必须具有重复的驼峰上下文,因此他们将竞争聚合组件。

也许每个聚合的临时队列和端点,但我不知道如何去做,特别是拆除。什么是处理两个对象,然后交付容器的最佳方法?

1 个答案:

答案 0 :(得分:0)

您可以在每个对象完成后向主题发送消息。该消息应包含上下文ID和对象ID。那么你将有一个关于主题的路线。收到消息后,它会将状态保留在一个简单的db表中,并检查是否已经保留了其他确认。如果是的话它会传递容器。