Я ищу способ агрегировать сообщения JMS, отправленные с нескольких серверов приложений, с балансировкой нагрузки через JMS. Проблема в основном в следующем:
В конце нашей регистрационной формы в http-сессии существует контейнер, и контейнер имеет два объекта одного типа. Каждый объект нужно обработать, затем нужно доставить контейнер. Обработка объекта требует больших ресурсов, поэтому обработка запрашивается (InOnly, асинхронно) и ставится в очередь в OpenMQ. Сообщение JMS потребляется одним из двух конкурирующих потребителей, которые в основном являются дублирующими серверами приложений, которые также обслуживают веб-запросы.
На данный момент у меня просто жестко запрограммирована задержка доставки контейнера, но с повышенным трафиком сбоев доставки предостаточно, так как объекты еще не закончили обработку. Я использую Apache Camel 2.6 и Spring Remoting, и верблюжий агрегатор был бы идеальным, за исключением того, что каждый сервер приложений должен иметь дублированный контекст верблюда, поэтому они будут конкурировать за совокупные компоненты.
Возможно, временная очередь и конечная точка для каждой агрегации, но я не уверен, как это сделать, особенно демонтаж. Как лучше всего обработать оба объекта, а затем доставить контейнер?