這里有幾個不同的隊列 名字沒有什么規(guī)則 就是xxx.xxx exchange也是和隊列的名字一樣的
package com.monitor.receiver.queue;
import java.util.List;
import java.util.Map;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.retry.annotation.Recover;
import org.springframework.stereotype.Component;
import com.monitor.receiver.jpush.PushUtil;
import com.monitor.receiver.pojo.SysWarnInfo;
import com.monitor.receiver.service.SysWarnInfoService;
@Recover
@Component
public class Receive {
@Autowired
SysWarnInfoService sysWarnInfoService;
@RabbitListener(queues="Adine.One")
public void process_sys_warn1(Map msg) {
if(msg!=null){
List< SysWarnInfo>list=sysWarnInfoService.findAccountList(msg);
PushUtil.jiguangPush(list);
}
}
@RabbitListener(queues="lous.wqui")
public void process_sys_warn2(Map msg) {
if(msg!=null){
List< SysWarnInfo>list=sysWarnInfoService.findAccountList(msg);
PushUtil.jiguangPush(list);
}
}
}
向上面的消費者 寫了兩個監(jiān)聽,根據(jù)隊列名 監(jiān)聽指定的隊列。 但是現(xiàn)在隊列是動態(tài)生成的 根本不知道有多少個隊列,也不知道隊列名字 反正隊列名生成規(guī)則就是XXX.XXX(用戶名.xxx類型)。 能不能只寫一個消費去消費此mq服務器所有的隊列? 像那種#.# 怎么配置的 就是消費所有的意思 怎么消費所有?
樓上的回答很贊。但是:
樓上的誤會了樓主的需求。
樓主的需求應該是:
1.隊列是根據(jù)某個字段動態(tài)產(chǎn)生,比如用戶手機號。
2.同時消費兩個或多個,指定手機號的隊列(動態(tài)指定。。。動態(tài)。。。動態(tài),重要的事情說三遍,舉個荔枝:這次指定路由到139.....和136....., 下次指定168....、139.....和136.....)。
這種需求,單獨依靠rabbitmq的exchange的routingKey是不行的。必須要通過接口,分發(fā)消息了
對于一個監(jiān)聽能消費所有消息的需求。。。要么你只建一個隊列。。。要么,單獨建一個隊列,推送到其他隊列的消息,都重復推送到這個隊列。就相當于匯總了所有隊列。
至于這種天馬行空的需求,我是怎么知道的。。。。
我想說,我不僅知道這個,還知道了啥叫私密隊列。對,你沒看錯,私密。
私密,也可以實現(xiàn)。。。服務端分發(fā)嘛。。。。那么,問題來了--我要這mq有何用?
哎,領導,我要離職。。。
題主先要明白 exchange的概念及其對應的幾種類型和routingKey的概念。
如果不依賴于任何插件的話,我目前的答案是不能。原因如下:
1、rabbit是生產(chǎn)者消費者解耦合的,必須建立綁定關系,隊列才能被消費
2、每條新生隊列默認只有一條綁定關系,那就是發(fā)送到amq.default的exchange中的消息,會按照routingKey名稱自動路由到相同名字的queue
3、你的隊列是動態(tài)生成的,那說明沒有新建綁定關系,只靠默認的綁定關系是做不到這一點的
另外,能不能只寫一個消費去消費此mq服務器所有的隊列? 這個問題是錯誤的,隊列本來就是消費者,沒有消費消費者這一說,題主的意思應該是寫一個服務消費所有的rabbitmq指定exchange的消息, 這個是可以做到的。
建議題主再了解一下rabbit相關知識,歡迎再來提問
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。