Я пытаюсь использовать RabbitMQ с Camel. Я использую Camel 2.14.1.Избегайте автоматического связывания с RabbitMQ и Camel
Я хочу открыть обмен разветвителя на RabbitMQ, а затем связать очереди с ним. Кажется, это работает нормально. Однако каждый раз, когда я создаю Exchange, он автоматически привязывается к очереди с именем системы (числом). Разве я не могу этого избежать? Вот простой пример, который отправляет 100 сообщений в Exchange. Но они доставляются в автоматически создаваемую очередь, я хочу этого избежать.
@Override
public void configure() throws Exception
{
final String testGUID = "xxxx";
from("timer://publish?repeatCount=100&period=10&fixedRate=true").process(new Processor()
//from("timer://publish?repeatCount=100&period=1&fixedRate=true").process(new Processor()
{
@Override
public void process(Exchange _exchange) throws Exception
{
String message = String.valueOf(_exchange.getProperty(Exchange.TIMER_COUNTER));
_exchange.getOut().setBody(message+testGUID);
}
})
.to("rabbitmq://localhost/exchange=logs1237?autoDelete=false&username=guest&password=guest&exchangeType=fanout");
}
С наилучшими пожеланиями, Morten Кнудсен
UPDATE: Кажется, глядя на источник, что запуск автоматической очереди происходит, если «очередь» в RabbitMQEndPoint не является нулевым. Но «queue» автоматически присваивается «String.valueOf (UUID.randomUUID(). ToString(). HashCode()); при строительстве.
Это решило мои проблемы. Добавление «& declare = false» в конец моего URI помешало RabbitMQ создавать динамические привязки на бирже. – Bal