spring项目链接RabbitMQ集群
生活随笔
收集整理的這篇文章主要介紹了
spring项目链接RabbitMQ集群
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1.pom
- 2. spring-rabbitmq-producer.xml
- 3. spring-rabbitmq-consumer.xml
- 4. rabbitmq.properties
1.pom
<!--spring整合rabbitmq--><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.4.7</version></dependency><dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-amqp</artifactId><version>1.4.0.RELEASE</version></dependency><dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>1.4.0.RELEASE</version></dependency><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><version>1.2.5.RELEASE</version></dependency>2. spring-rabbitmq-producer.xml
<?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:context="http://www.springframework.org/schema/context"xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/rabbithttp://www.springframework.org/schema/rabbit/spring-rabbit-1.4.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--生產(chǎn)者者配置如下:--><context:property-placeholder location="/WEB-INF/config/rabbitmq.properties"/><!-- 定義RabbitMQ的連接工廠--><rabbit:connection-factory id="connectionFactory"addresses="${rabbitmq.addresses}"username="${rabbitmq.username}"password="${rabbitmq.password}"virtual-host="${rabbitmq.vhost}"connection-timeout="${rabbitmq.conTimeout}"publisher-confirms="${rabbitmq.publisher-confirms}"publisher-returns="${rabbitmq.publisher-returns}"channel-cache-size="${rabbitmq.channel.cache-size}"/><!-- 管理消息隊列 --><rabbit:admin connection-factory="connectionFactory"/><!--此處為配置文件方式 管控臺配置模式需要注釋 默認模式管控臺 Start--><!-- 定義一個隊列或者多個隊列 自動聲明--><rabbit:queue name="LY-TRACE-OBJ-QUEUE" auto-declare="true" durable="true"/><rabbit:queue name="LY-TRACE-OBJ-QUEUE2" auto-declare="true" durable="true"/><rabbit:topic-exchange name="LY-TRACE-WS-EXCHANGE"><rabbit:bindings><!-- 可綁定多個隊列,發(fā)送的時候指定key進行發(fā)送 --><rabbit:binding queue="LY-TRACE-OBJ-QUEUE" pattern="LY-trace-obj.h"/><rabbit:binding queue="LY-TRACE-OBJ-QUEUE" pattern="LY-trace-obj.h"/></rabbit:bindings></rabbit:topic-exchange><rabbit:topic-exchange name="LY-TRACE-HTTP-EXCHANGE"><rabbit:bindings><!-- 可綁定多個隊列,發(fā)送的時候指定key進行發(fā)送 --><rabbit:binding queue="LY-TRACE-OBJ-QUEUE" pattern="LY-trace-obj.*"/></rabbit:bindings></rabbit:topic-exchange><!--此處為配置文件方式 管控臺配置模式需要注釋 默認模式管控臺 End--><!-- 定義交換機 自動聲明--><rabbit:topic-exchange name="LY-TRACE-WS-EXCHANGE"auto-declare="true" durable="true"/><rabbit:topic-exchange name="LY-TRACE-HTTP-EXCHANGE"auto-declare="true" durable="true"/><!-- 定義MQ消息模板1. id : 定義消息模板ID2.connection-factory : 把定義的連接工廠放到消息模板中3.confirm-callback : confirm確認機制4.return-callback : return確認機制5.mandatory :#有2種狀態(tài)設置為 true 后 消費者在消息沒有被路由到合適隊列情況下會被return監(jiān)聽,而不會自動刪除;設置為 false 后 消費者在消息沒有被路由到合適隊列情況下會自動刪除--><rabbit:template id="rabbitTemplate"connection-factory="connectionFactory"confirm-callback="confirmCallBackListener"return-callback="returnCallBackListener"mandatory="${rabbitmq.mandatory}"/><!--RabbitMQ2種消息確認機制 xml形式 如果使用注解請注釋--><bean id="confirmCallBackListener" class="com.gblfy.LY.confirm.ConfirmCallBackListener"/><bean id="returnCallBackListener" class="com.gblfy.LY.re.ReturnCallBackListener"/></beans>3. spring-rabbitmq-consumer.xml
<?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:context="http://www.springframework.org/schema/context"xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/rabbithttp://www.springframework.org/schema/rabbit/spring-rabbit-1.4.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--消費者配置如下:--><context:property-placeholder location="/WEB-INF/config/rabbitmq.properties"/><!-- 定義RabbitMQ的連接工廠 --><rabbit:connection-factory id="connectionFactory"addresses="${rabbitmq.addresses}" username="${rabbitmq.username}"password="${rabbitmq.password}" virtual-host="${rabbitmq.vhost}"connection-timeout="${rabbitmq.conTimeout}"/><!-- 管理消息隊列 --><rabbit:admin connection-factory="connectionFactory"/><!-- 定義一個隊列或者多個隊列 自動聲明--><!-- <rabbit:queue name="LY-TRACE-OBJ-QUEUE" auto-declare="true" durable="true"/>--><!-- 聲明多個消費者對象 --><bean id="mQAsynStorageLog" class="com.gblfy.mqhandler.MQAsynStorageLog"/><!-- 監(jiān)聽隊列1. connectionFactory 連接工廠2. acknowledge 簽收方式:手動簽收3. concurrency 消費者多線程監(jiān)聽隊列數(shù)量max-concurrency 消費者多線程監(jiān)聽隊列最大數(shù)量4. ref="" 消費者監(jiān)聽--><rabbit:listener-container connection-factory="connectionFactory"acknowledge="manual"concurrency="${rabbitmq.concurrency}"max-concurrency="${rabbitmq.max-concurrency}"><rabbit:listener ref="mQAsynStorageLog" method="onMessage" queue-names="LY-TRACE-STR-QUEUE,LY-TRACE-OBJ-QUEUE"/></rabbit:listener-container> </beans>4. rabbitmq.properties
#RabbitMQ 連接信息 #IP地址 rabbitmq.addresses=ip1:5672,ip2:5672,ip3:5672 #端口 #rabbitmq.port=5672 #用戶名 rabbitmq.username=guest #密碼 rabbitmq.password=guest #虛擬主機 rabbitmq.vhost=/ #連接超時時間 rabbitmq.conTimeout=15000 #發(fā)送確認 對應RabbitTemplate.ConfirmCallback接口 #消息發(fā)送成功 有2個重要參數(shù) # ack 狀態(tài)為true correlationId 全局唯一ID用于標識每一支隊列 #設置發(fā)送消息失敗重試 rabbitmq.publisher-confirms=true rabbitmq.mandatory=true #發(fā)送失敗回退,對應RabbitTemplate.ReturnCallback接口 rabbitmq.publisher-returns=true #解決多線程發(fā)送消息 rabbitmq.channel.cache-size=500#消費者多線程消費 rabbitmq.concurrency=10 rabbitmq.max-concurrency=20 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的spring项目链接RabbitMQ集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片批量转换pdf文件
- 下一篇: javax.management.Ins