Отклонить сообщение в Apache Camel
Надеюсь, это не звучит смешно, но как я могу отказаться от сообщения в Camel?
До сих пор я отправлял их в Log-Component, но между тем я даже не хочу регистрировать вывод.
В Верблюде есть конечная точка /dev/null?
Ответы
Ответ 1
Вы можете использовать фильтр сообщений eip для фильтрации нежелательных сообщений.
http://camel.apache.org/message-filter
Нет компонента dev/null,.
Также существует < stop/" > , который вы можете использовать на маршруте, и когда сообщение ударит его, оно перестанет продолжать маршрутизацию.
И самое близкое, что мы получили на dev/null, - это маршрут в журнал, где вы устанавливаете logLeve = OFF как вариант.
Ответ 2
С уважением к моему коллеге (кодовое название: cayha)...
Вы можете использовать Stub Component в качестве конечной точки верблюда, которая эквивалентна /dev/null
.
например.
activemq:route?abc=xyz
становится
stub:activemq:route?abc=xyz
Хотя я не знаю о внутренней работе этого компонента (и если есть опасности для утечек памяти и т.д.), он работает для меня, и я не вижу никаких недостатков в этом.
Ответ 3
можно установить uri/mock-uri в конфигурацию, используя компонент свойств
<camelContext ...>
<propertyPlaceholder id="properties" location="ref:myProperties"/>
</camelContext>
// properties
cool.end=mock:result
# cool.end=result
// route
from("direct:start").to("properties:{{cool.end}}");