![](/img/trans.png)
[英]Spring Cloud GCP PubSub DLQ (dead letter queue) using Spring Integration
[英]Spring JMS Activemq - set dead letter queue-name (DLQ)
我們有3個不同的項目在同一個ACTIVEMQ代理上運行。 目前有一個“DLQ”隊列,我們想為每個Web應用程序設置dlq,如下所示:
dlq_webapp1
dlq_webapp2
dlq_webapp3
這樣我們就可以更好地控制重試流程。 我們如何配置它是這樣的? 這是我們的一些消息傳遞bean:
<bean id="redeliveryConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activemq_url}" />
<property name="redeliveryPolicy" ref="redeliveryPolicy" />
<property name="nonBlockingRedelivery" value="true" />
</bean>
<bean id="redeliveryCachingConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory"
p:targetConnectionFactory-ref="redeliveryConnectionFactory"
p:sessionCacheSize="10" />
<!-- Redelivery: retry after 3sec, 6sec,9sec,12sec,15sec finally put in
DLQ -->
<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
<property name="queue" value="*" />
<property name="initialRedeliveryDelay" value="0" />
<property name="redeliveryDelay" value="3000" />
<property name="maximumRedeliveryDelay" value="3600000" />
<property name="maximumRedeliveries" value="5" />
<property name="useExponentialBackOff" value="true" />
<property name="backOffMultiplier" value="1" />
</bean>
<!-- A JmsTemplate instance that uses the cached connection and destination -->
<bean id="redeliveryJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="redeliveryCachingConnectionFactory" />
<property name="messageConverter" ref="eventConverter" />
<property name="sessionTransacted" value="true" />
</bean>
我認為您需要在代理處配置deadLetterStrategy
。 請參閱 - ActiveMQ DLQ上的示例
您可以選擇individualDeadLetterStrategy
,它為每個隊列創建一個單獨的DLQ(取決於您的目標策略)。 您可以為每個項目/應用程序使用不同的前綴。 因此,每個項目/應用程序只能有一個消費者使用來自所有DLQ的DLQ消息,從相應的前綴開始(在創建消費者時使用通配符)。
您可以轉到Apache ActiveMQ文件夾。 在那里你將獲得/ config文件夾中的activemq.xml。
將此代碼添加到activemq.xml文件中的<broker>
標記下
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">">
<deadLetterStrategy>
<individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true"/>
</deadLetterStrategy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.