Воссоздайте все соединения весеннего кролика CachingConnectionFactory

У меня есть CachingConnectionFactory с несколькими адресами. Когда один брокер падает, он подключается ко второму. Теперь, когда брокер снова появляется, мне нужно уничтожить существующие соединения и снова подключиться к нему. Но у CachingConnectionFactory нет методов запуска и остановки, вместо этого есть только уничтожение, что может сделать фабрику непригодной для использования (?).

Конфигурация:

<bean id="testConnFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
    <property name="addresses" value="rabbit1,rabbit2" />
    <property name="cacheMode" value="CONNECTION" />
    <property name="connectionCacheSize" value="${connection.cache.size}" />
</bean>

Есть ли способ сделать это программно?


person Sumit Jain    schedule 06.08.2015    source источник


Ответы (1)


Звонок destroy() безопасен; соединение (я) будет сброшено и восстановлено в следующий раз, когда компонент захочет его.

Имейте в виду, однако, что это повлияет на любые операции в процессе.

Вероятно, нам следует добавить менее страшный метод, такой как resetConnection(), как у нас с фабрикой соединений Spring JMS.

person Gary Russell    schedule 06.08.2015
comment
Да, я проверял... выглядит страшно, но работает нормально. Вы правы, дополнение было бы гораздо приятнее :) - person Sumit Jain; 06.08.2015