Проблема с маршрутизацией между двумя бобами с использованием Apache Camel - PullRequest
1 голос
/ 02 октября 2010

мой верблюжий маршрут указан ниже

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
    <route>
      <from uri="bean:SendClass?method=send" />
      <to uri="jms:MyQueue" pattern="InOnly" />
    </route>
    <route>
    <from uri="jms:MyQueue" />
    <to uri="bean:recvClass?method=recv" />
    </route>
  </camelContext>

Метод send отправляет сообщения при активации сторонним Pojo с нерегулярными интервалами. Но проблема, которую я считаю верблюдом, перезапускается маршруты после получения сообщения компонентом recv и повторной отправки одного и того же сообщения (сотни из них в секунду). отправить сообщение, когда метод отправки активируется и создается новое сообщение (т. е. в очереди JMS должны быть уникальные сообщения). как мне это сделать?

Возможные решения:

  1. это какой-то атрибут, который я могу поместить в <from.../>, чтобы сделать это?
  2. написать процессор для фильтрации уникальных сообщений между компонентом отправки и очередью.
  3. Это какой-то другой способ его маршрутизации без использования <from uri="bean:..." />

спасибо sanre6

1 Ответ

2 голосов
/ 03 октября 2010

Вы не должны иметь 1-й маршрут.Когда вы делаете это, вы говорите Camel постоянно вызывать метод send для этого компонента и маршрутизировать его.И, следовательно, почему вы видите сотни сообщений в секунду.

Вместо этого вы должны использовать API-интерфейс Camel из своего кода компонента и отправить сообщение в очередь JMS.Например, используя ProducerTemplate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...