MQ应用一般步骤:
1. 定义队列
2. 定义队列和key值
3. 监听路由key(通知队列上的监听对象)
4. 定义消费者(监听对象)
第一步:配置connection-factory,指定连接rabbit server参数
<!--配置connection-factory,指定连接rabbit server参数 -->
<rabbit:connection-factory id="connectionFactory"
virtual-host="${messaging.ribbitmq.vhost}"
username="${messaging.ribbitmq.username}"
password="${messaging.ribbitmq.password}"
host="${messaging.ribbitmq.address}"
port="${messaging.ribbitmq.port}"/>
第二步:
<!--定义rabbit template用于数据的接收和发送 -->
<rabbit:template id="amqpQueryTransactionRequestTemplate" connection-factory="connectionFactory"
exchange="${messaging.ribbitmq.exchange}" routing-key="account.rq.pgw.query_transaction"/>
<!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
<rabbit:admin connection-factory="connectionFactory" id="rabbitAdmin"/>
第三步: 1. 定义队列(1)
2. 定义队列和key值(2)
<!--定义queue -->
<!--绑卡 -->
<rabbit:queue name="q-account-rq-trusteeship-ygonline-addDeleteCardNotice" durable="true" auto-delete="false"
exclusive="false"/>
<!--单笔自动投标 -->
<rabbit:queue name="q-account-rq-trusteeship-ygonline-singleAutoBid" durable="true" auto-delete="false"
exclusive="false"/>
<rabbit:queue name="q-account-rq-trusteeship-ygonline-singleAutoBidNotice" durable="true" auto-delete="false"
exclusive="false"/>
<!--账务通知-->
<rabbit:queue name="q-account-rq-trusteeship-ygonline-acctnotifyCheckSynz" durable="true" auto-delete="false"
exclusive="false"/>
第四步:监听队列-
<rabbit:topic-exchange>
<!--绑卡/修改手机号 -->
<rabbit:binding queue="q-account-rq-trusteeship-ygonline-addDeleteCardNotice"
pattern="pgw.rs.trusteeship.ygonline.account.add_delete_card_notice"/>
<rabbit:binding queue="q-account-rq-trusteeship-ygonline-account-resetMobileNotice"
pattern="pgw.rs.trusteeship.ygonline.account.reset_mobile_notice"/>
<!--单笔自动投标 -->
<rabbit:binding queue="q-account-rq-trusteeship-ygonline-singleAutoBid"
pattern="pgw.rs.trusteeship.ygonline.account.single_auto_bid"/>
<rabbit:binding queue="q-account-rq-trusteeship-ygonline-singleAutoBidNotice"
pattern="pgw.rs.trusteeship.ygonline.account.single_auto_bid_notice"/>
<!--账务通知-->
<rabbit:binding queue="q-account-rq-trusteeship-ygonline-acctnotifyCheckSynz"
pattern="pgw.rs.trusteeship.ygonline.account.acctnotify_check_synz"/>
</rabbit:topic-exchange>
第五步:消息接受者
<!--绑卡/修改手机号 -->
<bean id="removeBindCardReceiver"
class="com.yingu.account.structure.messaging.RemoveBindCardConsumer"></bean>
<!--单笔自动投标 -->
<bean id="singleAutoBidReceiver"
class="com.yingu.account.structure.messaging.SingleAutoBidConsumer"></bean>
<bean id="singleAutoBidSuccessReceiver"
class="com.yingu.account.structure.messaging.SingleAutoBidSuccessConsumer"></bean>
<!--账务通知-->
<bean id="acctnotifyCheckReceiver"
class="com.yingu.account.structure.messaging.AcctnotifyCheckConsumer"></bean>
第六步: – queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象
<!--绑卡/修改手机号 -->
<rabbit:listener queues="q-account-rq-trusteeship-ygonline-addDeleteCardNotice" ref="removeBindCardReceiver"/>
<rabbit:listener queues="q-account-rq-trusteeship-ygonline-account-resetMobileNotice" ref="restMobilReceiver"/>
<!--单笔自动投标 -->
<rabbit:listener queues="q-account-rq-trusteeship-ygonline-singleAutoBid" ref="singleAutoBidReceiver"/>
<rabbit:listener queues="q-account-rq-trusteeship-ygonline-singleAutoBidNotice"
ref="singleAutoBidSuccessReceiver"/>
<!--账务通知-->
<rabbit:listener queues="q-account-rq-trusteeship-ygonline-acctnotifyCheckSynz" ref="acctnotifyCheckReceiver"/>