Использование publi sh подтверждает весеннюю интеграцию - PullRequest
0 голосов
/ 04 февраля 2020

Мы используем весеннюю интеграцию для передачи сообщений от RabbitMQ1 другому брокеру RabbitMQ2. Это работает хорошо. Однако мы хотели бы использовать «publi sh подтверждение» rabbitmq, чтобы убедиться, что полученное шлюзом сообщение учитывается получателем перед переходом к следующему сообщению.

Ниже приведена схема c схема рабочего процесса, который мы хотели бы настроить для шлюза для каждого сообщения: шаги 1,2,3,4 перед переходом к следующему сообщению в очереди QUEUE_OUT.

enter image description here

Ниже конфигурации нашего java кода:

<!-- Channel definition -->
<int:channel id="channelRmqRmq">
</int:channel>

<!-- ********************* -->
<!-- Source RABBITMQ 1     -->
<!-- ********************* -->
<rabbit:connection-factory  id="rabbitConnectionFactory"   username="guest" password="guest" addresses="XX.XX.XX.XX" cache-mode="CONNECTION" connection-cache-size="50"  virtual-host="/" />

<int-amqp:inbound-channel-adapter   channel="channelRmqRmq" queue-names="QUEUE_OUT" connection-factory="rabbitConnectionFactory"
                                    auto-startup="true" id="inboundChannelAdapter" channel-transacted="true" 
                                    concurrent-consumers="1" prefetch-count="40"  
                                    />

<!-- ********************** -->
<!-- Destination RABBITMQ 2 -->
<!-- ********************** -->

<int-amqp:outbound-channel-adapter channel="channelRmqRmq" routing-key="rk1"  exchange-name="amqp.direct" amqp-template="rabbitTemplate" default-delivery-mode="PERSISTENT"  />

<rabbit:template id="rabbitTemplate" connection-factory="rabbitConnectionFactory" channel-transacted="true" message-converter="simpleMessageConverter"/>
<bean id="simpleMessageConverter" class="org.springframework.amqp.support.converter.SimpleMessageConverter">
    <property name="createMessageIds" value="true" />
</bean>     

<rabbit:connection-factory id="rabbitConnectionFactory" host="YY.YY.YY.YY" username="guest"  password="guest"  port="5672" cache-mode="CONNECTION" connection-cache-size="50" virtual-host="/"  connection-limit="1"/>

Этого достаточно для соблюдения нашего рабочего процесса?

Входящие и исходящие объявляются с атрибутом channel-transacted = "true"?

На кролике: фабрика соединений доступны некоторые атрибуты:

  • издатель-подтверждение
  • издатель-возврат
  • tx-size

Спасибо за вашу помощь

С уважением

...