2013-07-23 2 views
1

Здесь существующий весенний кролик конфигурации из проекта, который я унаследовал -Spring RabbitMQ - это конфигурация очереди, без обмена возможных

<rabbit:connection-factory id="rabbitConnectionFactory" 
    host="${rabbitmq.host}" 
    port="${rabbitmq.port}" 
    virtual-host="${rabbitmq.virtualHost}" 
    username="${rabbitmq.username}" 
    password="${rabbitmq.password}"/> 

<rabbit:template id="ampqTemplate" connection-factory="rabbitConnectionFactory" routing-key="" /> 
<rabbit:admin connection-factory="rabbitConnectionFactory" /> 
<rabbit:queue name="${rabbitmq.queueName}" /> 

Я не имею опыт использования кролика и с моим ограниченная ссылка, Я понимаю, что обмен является важной частью в настройке, так как он передает сообщения в очередь внутри.

Однако вышеуказанная конфигурация не содержит никакой информации об обмене.

Мои вопросы:

  1. Является ли обмен абсолютно важным для даже простой конфигурации очереди.?
  2. Есть ли какая-либо импликация, не определяющая обмен
  3. Есть ли какая-либо конфигурация, явно отсутствующая в вышеуказанной конфигурации?

ответ

3

Если вы не указали обмен, то обмен по умолчанию будет использоваться. Это прямой обмен, который будет использовать имя очереди в качестве ключа маршрутизации.

Не похоже, что в вашей конфигурации ничего не осталось. Шахта:

<rabbit:connection-factory id="connectionFactory" host="${rabbit.host}" username="${rabbit.username}" password="${rabbit.password}" virtual-host="${rabbit.vhost}"/> 
<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory" message-converter="jsonMessageConverter" routing-key="event-queue"/> 

Вы можете быть в состоянии взять rabbit:queue определение и использовать имя очереди в качестве ключа для маршрутизации rabbit:template.