Проблема с маршрутизацией между двумя бобами с использованием верблюда Apache
-
27-09-2019 - |
Вопрос
Маршрут мой верблюд дан ниже
<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>
Метод отправки отправляет сообщения при активации 3-го вечеринка POJO на некоторых нерегулярных интервалах. Нота, проблема, я думаю, это верблюда, перезапускается маршруты после получения сообщения по бону Recv и отправляя то же самое сообщение (сотни из них через секунду ) .Ideally Я хочу, чтобы он отправил сообщение, когда метод отправки будет активирован, и было создано новое сообщение (то есть очередь JMS должна иметь уникальное сообщение). Как я делаю это?
Возможные решения являются:
- это их атрибут, который я могу разместить внутри
<from.../>
сделать это ? - Напишите процессор для фильтрации уникального сообщения между отправкой BEAL и очередью.
- Это их другой способ маршрутизации без использования
<from uri="bean:..." />
Спасибо SANRE6.
Решение
У вас не должно быть 1-го маршрута. Когда вы делаете это, вы скажете, верблюде постоянно вызовут метод отправки на этом бобовом и направлении его. И, следовательно, почему вы видите 100 из сообщений в секунду.
Вместо этого вы должны использовать некоторое верблюда API из в пределах вашего кода бобов и отправить сообщение в очередь JMS. Например, использование производительности.