<?xml version="1.0" encoding="UTF-8"?>
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:rabbit="http://www.springframework.org/schema/rabbit"
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
http://www.springframework.org/schema/beans/spring-beans.xsd
|
|
|
http://www.springframework.org/schema/rabbit
|
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
|
|
<rabbit:connection-factory id="connectionFactory"
|
host="${rabbitmq.host}"
|
port="${rabbitmq.port}"
|
username="${rabbitmq.username}"
|
password="${rabbitmq.password}"
|
virtual-host="${rabbitmq.virtual-host}" />
|
<!--定义管理交换机、队列-->
|
<rabbit:admin connection-factory="connectionFactory"/>
|
|
<rabbit:queue id="deadLetterQueue" name="deadLetterQueue" auto-declare="true">
|
<rabbit:queue-arguments>
|
<entry key="x-message-ttl" value="172800000" value-type="java.lang.Integer"/> <!-- 设置消息 TTL 为 2天 -->
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<!-- 定义死信交换机和队列 -->
|
<rabbit:fanout-exchange id="deadLetterExchange" name="dead.letter.exchange" >
|
<rabbit:bindings>
|
<rabbit:binding queue="deadLetterQueue"/>
|
</rabbit:bindings>
|
</rabbit:fanout-exchange>
|
|
|
<!--定义持久化队列,不存在则自动创建;不绑定到交换机则绑定到默认交换机. 默认交换机类型为direct,名字为:"",路由键为队列的名称-->
|
<!--
|
id:bean的名称
|
name:queue的名称
|
auto-declare:自动创建
|
auto-delete:自动删除。 最后一个消费者和该队列断开连接后,自动删除队列
|
durable:是否持久化
|
-->
|
|
|
|
<!-- 简单模式 -->
|
<!-- ignore-declaration-exceptions: 忽略队列已存在且声明时属性不一致的报错 -->
|
<rabbit:queue id="order-all-fanli" name="order-all-fanli" auto-declare="true">
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="order-vipshop-fanli" name="order-vipshop-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="order-suning-fanli" name="order-suning-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="push-hw-fanli" name="push-hw-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="order-jd-fanli" name="order-jd-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="order-pdd-fanli" name="order-pdd-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="tejia_vip-fanli" name="tejia_vip-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-share-order-fanli" name="fanli-share-order-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="imp_goods_update_queue-fanli" name="imp_goods_update_queue-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-order-new-fanli" name="fanli-order-new-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="weiquan-order-fanli" name="weiquan-order-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-order-fanli" name="fanli-order-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="push-ios-fanli" name="push-ios-fanli" auto-declare="true">
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="extract-result-fanli" name="extract-result-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-team-income-order-fanli" name="fanli-team-income-order-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-new-orders-fanli" name="fanli-new-orders-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="team_dividents-fanli" name="team_dividents-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-orders-fanli" name="fanli-orders-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="fanli-team-income-order-pre-fanli" name="fanli-team-income-order-pre-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="team_dividents_pre-fanli" name="team_dividents_pre-fanli" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
|
<!-- 发布订阅模式 -->
|
<!-- fanout: 广播, 所有绑定到交换机的队列都能收到消息 -->
|
|
<!-- 用户资金变化订阅 -->
|
<rabbit:queue id="topic_user_money_debt" name="topic_user_money_debt" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:fanout-exchange id="topic_user_money" name="topic_user_money" auto-declare="true" >
|
<rabbit:bindings>
|
<rabbit:binding queue="topic_user_money_debt" />
|
</rabbit:bindings>
|
</rabbit:fanout-exchange>
|
|
<!-- 下单订阅 -->
|
<rabbit:queue id="topic_place_order_integral" name="topic_place_order_integral" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:queue id="topic_place_order_ad" name="topic_place_order_ad" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:fanout-exchange id="topic_place_order" name="topic_place_order" auto-declare="true" >
|
<rabbit:bindings>
|
<rabbit:binding queue="topic_place_order_integral" />
|
<rabbit:binding queue="topic_place_order_ad" />
|
</rabbit:bindings>
|
</rabbit:fanout-exchange>
|
|
<!-- 下单红包订阅 -->
|
<rabbit:queue id="topic_hongbao_integral" name="topic_hongbao_integral" auto-declare="true" >
|
<rabbit:queue-arguments>
|
<!-- 配置死信队列 -->
|
<entry key="x-dead-letter-exchange" value="dead.letter.exchange" />
|
<entry key="x-message-ttl" value="${rabbitmq.x-message-ttl}" value-type="java.lang.Integer"/>
|
</rabbit:queue-arguments>
|
</rabbit:queue>
|
<rabbit:fanout-exchange id="topic_hongbao" name="topic_hongbao" auto-declare="true" >
|
<rabbit:bindings>
|
<rabbit:binding queue="topic_hongbao_integral" />
|
</rabbit:bindings>
|
</rabbit:fanout-exchange>
|
|
<!-- rabbitTemplate-->
|
<rabbit:template id="rabbitTemplate" connection-factory="connectionFactory" retry-template="retryTemplate" />
|
|
<!-- Retry Template -->
|
<bean id="retryTemplate" class="org.springframework.retry.support.RetryTemplate">
|
<property name="backOffPolicy">
|
<bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
|
<property name="initialInterval" value="1000"/> <!-- 初始间隔 -->
|
<property name="multiplier" value="3"/> <!-- 乘数 -->
|
<property name="maxInterval" value="30000"/> <!-- 最大间隔 -->
|
</bean>
|
</property>
|
<property name="retryPolicy">
|
<bean class="org.springframework.retry.policy.SimpleRetryPolicy">
|
<property name="maxAttempts" value="5"></property>
|
</bean>
|
</property>
|
</bean>
|
|
</beans>
|