官方RabbitMQ配置html
如下總結的很到位,請細看算法
RabbitMQ(1)安裝配置用戶角色權限spring
RabbitMQ(3)SpringBoot+RabbitMQ基於註解和代碼之HelloWorldapp
RabbitMQ(4)SpringBoot+RabbitMQ發送確認和消費手動確認機制less
RabbitMQ(5)SpringBoot+RabbitMQ用死信隊列和插件形式實現延遲隊列spring-boot
RabbitMQ(6)基於Java的RabbitMQ發送、消費消息fetch
一、基礎配置插件
#默認localhost spring.rabbitmq.host #默認5672 spring.rabbitmq.port #用戶名 spring.rabbitmq.username #密碼 spring.rabbitmq.password #鏈接到代理時用的虛擬主機 spring.rabbitmq.virtual-host #鏈接到server的地址列表(以逗號分隔),先addresses後host spring.rabbitmq.addresses #請求心跳超時時間,0爲不指定,若是不指定時間單位默認爲妙 spring.rabbitmq.requested-heartbeat #是否啓用【發佈確認】,默認false spring.rabbitmq.publisher-confirms #是否啓用【發佈返回】,默認false spring.rabbitmq.publisher-returns #鏈接超時時間,單位毫秒,0表示永不超時 spring.rabbitmq.connection-timeout
二、SSL代理
spring.rabbitmq.ssl.enabled: 是否支持ssl,默認false spring.rabbitmq.ssl.key-store: 持有SSL certificate的key store的路徑 spring.rabbitmq.ssl.key-store-password: 訪問key store的密碼 spring.rabbitmq.ssl.trust-store: 持有SSL certificates的Trust store spring.rabbitmq.ssl.trust-store-password: 訪問trust store的密碼 spring.rabbitmq.ssl.trust-store-type=JKS:Trust store 類型. spring.rabbitmq.ssl.algorithm: ssl使用的算法,默認由rabiitClient配置 spring.rabbitmq.ssl.validate-server-certificate=true:是否啓用服務端證書驗證 spring.rabbitmq.ssl.verify-hostname=true 是否啓用主機驗證
三、 緩存cache
#緩存中保持的channel數量 spring.rabbitmq.cache.channel.size #當緩存數量被設置時,從緩存中獲取一個channel的超時時間,單位毫秒;若是爲0,則老是建立一個新channel spring.rabbitmq.cache.channel.checkout-timeout #緩存的channel數,只有是CONNECTION模式時生效 spring.rabbitmq.cache.connection.size #鏈接工廠緩存模式:channel 和 connection= spring.rabbitmq.cache.connection.mode=channel
四、Listener
#容器類型.simple或direct spring.rabbitmq.listener.type=simple #是否啓動時自動啓動容器 spring.rabbitmq.listener.simple.auto-startup=true #表示消息確認方式,其有三種配置方式,分別是none、manual和auto;默認auto spring.rabbitmq.listener.simple.acknowledge-mode #最小的消費者數量 spring.rabbitmq.listener.simple.concurrency #最大的消費者數量 spring.rabbitmq.listener.simple.max-concurrency #一個消費者最多可處理的nack消息數量,若是有事務的話,必須大於等於transaction數量. spring.rabbitmq.listener.simple.prefetch #當ack模式爲auto時,一個事務(ack間)處理的消息數量,最好是小於等於prefetch的數量. #若大於prefetch, 則prefetch將增長到這個值 spring.rabbitmq.listener.simple.transaction-size #決定被拒絕的消息是否從新入隊;默認是true(與參數acknowledge-mode有關係) spring.rabbitmq.listener.simple.default-requeue-rejected #若容器聲明的隊列在代理上不可用,是否失敗; 或者運行時一個多多個隊列被刪除,是否中止容器 spring.rabbitmq.listener.simple.missing-queues-fatal=true #發佈空閒容器的時間間隔,單位毫秒 spring.rabbitmq.listener.simple.idle-event-interval #監聽重試是否可用 spring.rabbitmq.listener.simple.retry.enabled=false #最大重試次數 spring.rabbitmq.listener.simple.retry.max-attempts=3 #最大重試時間間隔 spring.rabbitmq.listener.simple.retry.max-interval=10000ms #第一次和第二次嘗試傳遞消息的時間間隔 spring.rabbitmq.listener.simple.retry.initial-interval=1000ms #應用於上一重試間隔的乘數 spring.rabbitmq.listener.simple.retry.multiplier=1 #重試時有狀態or無狀態 spring.rabbitmq.listener.simple.retry.stateless=true #ack模式 spring.rabbitmq.listener.direct.acknowledge-mode= #是否在啓動時自動啓動容器 spring.rabbitmq.listener.direct.auto-startup=true #每一個隊列消費者數量. spring.rabbitmq.listener.direct.consumers-per-queue= #默認是否將拒絕傳送的消息從新入隊. spring.rabbitmq.listener.direct.default-requeue-rejected= #空閒容器事件發佈時間間隔. spring.rabbitmq.listener.direct.idle-event-interval= #若容器聲明的隊列在代理上不可用,是否失敗. spring.rabbitmq.listener.direct.missing-queues-fatal=false #每一個消費者可最大處理的nack消息數量. spring.rabbitmq.listener.direct.prefetch= #是否啓用發佈重試機制. spring.rabbitmq.listener.direct.retry.enabled=false # 發送消息的第一次和第二次嘗試之間的持續時間 spring.rabbitmq.listener.direct.retry.initial-interval=1000ms # 發送消息的最大嘗試次數. spring.rabbitmq.listener.direct.retry.max-attempts=3 # 嘗試之間的最大持續時間 spring.rabbitmq.listener.direct.retry.max-interval=10000ms # 乘數應用於前一個重試間隔 spring.rabbitmq.listener.direct.retry.multiplier=1 # 重試是無狀態的仍是有狀態的 spring.rabbitmq.listener.direct.retry.stateless=true
五、Template
#啓用強制信息;默認false spring.rabbitmq.template.mandatory #receive() 操做的超時時間 spring.rabbitmq.template.receive-timeout #sendAndReceive() 操做的超時時間 spring.rabbitmq.template.reply-timeout #發送重試是否可用 spring.rabbitmq.template.retry.enabled=false #最大重試次數 spring.rabbitmq.template.retry.max-attempts=3 #第一次和第二次嘗試發佈或傳遞消息之間的間隔 spring.rabbitmq.template.retry.initial-interva=1000msl #應用於上一重試間隔的乘數 spring.rabbitmq.template.retry.multiplier=1 #最大重試時間間隔 spring.rabbitmq.template.retry.max-interval=10000