5 工作隊列

.

1 圖解

工作模式

2 代碼

url:
	https://github.com/3748/RabbitMq.git

package:
	com.test.rabbitmq.work

3 代碼介紹

3.1 引入必須依賴

pom.xml

3.2 獲取MQ連接

com.test.rabbitmq.util.ConnectionUtil

3.3 消息消費者1

com.test.rabbitmq.work.WorkConsumer1

3.4 消息消費者2

com.test.rabbitmq.work.WorkConsumer2

3.5 消息生產者

com.test.rabbitmq.work.WorkProducer

3.6 啓動生產者

 先將兩個消費者啓動
 生產50條消息,推送到隊列中
 WorkConsumer2中每次獲取到消息後都Thread.sleep(1000)休眠一秒
 WorkConsumer1消費的消息要多於WorkConsumer2
 符合能者多勞原則
 如果將消費者中channel.basicQos(1);註釋.兩個消費者將消費相同數量的消息

4 應用場景

1: 紅包
2: 大項目中的資源調度(任務分配系統不需知道哪一個任務執行系統在空閒,直接將任務扔到消息隊列中,空閒的系統自動爭搶)
3: 可以用來進行負載均衡

5 隱患

高併發情況下,默認會產生某一個消息被多個消費者共同使用,可以設置一個開關(syncronize,與同步鎖的性能不一樣) 保證一條消息只能被一個消費者使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章