1. 程式人生 > >RabbitMq學習筆記(四)—— 訊息路由(Routing)

RabbitMq學習筆記(四)—— 訊息路由(Routing)

//宣告直連交換器

channel.exchangeDeclare(EXCHANGE_NAME, "direct");  

// 獲取匿名佇列名稱  

String queueName = channel.queueDeclare().getQueue();



根據路由關鍵字進行多重繫結 

for(String severity :routingKeys){  

        channel.queueBind(queueName, EXCHANGE_NAME, severity);  

} 



//消費資料

Consumer consumer = new DefaultConsumer(channel) {  

            @Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" [x] Received '" + envelope.getRoutingKey() + "':'"
+ message + "'"); } }; channel.basicConsume(queueName, true, consumer);

直連型別交換器

上一章的例子是通過分發【fanout】型別的交換器【logs】廣播日誌資訊,現在我們將日誌分debug、info、warn、error這幾種基本的級別,實際在生產環境中,避免磁碟空間浪費,應用只會將error級別的日誌打印出來。而分發【fanout】型別的交換器會將所有基本的日誌都發送出來,如果我們想只接收某一級別的日誌資訊,就需要使用直連【direct】型別的交換器了, 下面的圖中,佇列1通過ERROR這個routingkey繫結到E交換器,佇列2通過WARN和INFO繫結到E交換器,E交換器的型別是直連【direct】的,如果生產者【P】發出ERROR的日誌,只會有佇列1會收到,如果生產者【P】發出INFO和WARN的日誌,只有佇列2會收到,如果生產者【P】發出DEBUG級別的日誌,佇列1和佇列2都會忽略它。

多重繫結

我們允許多個佇列以相同的路由關鍵字繫結到同一個交換器中,可以看到,交換器雖然是直連型別,但是繫結後的效果卻跟分發型別的交換器類似,相同的是佇列1和佇列2都會收到同一條來自交換器的訊息。

他們的區別:分發模式下,佇列1、佇列2會收到所有級別(除ERROR級別以外)的訊息,而直連模式下,他們僅僅只會收到ERROR關鍵字型別的訊息。

相關推薦

RabbitMq學習筆記—— 訊息路由Routing

//宣告直連交換器 channel.exchangeDeclare(EXCHANGE_NAME, "direct"); // 獲取匿名佇列名稱 String queueName = channel.queueDeclare().getQueue()

Linux學習筆記————Linux常用命令 待補充

-h http “.” 現實 人性化 快捷 我們 包括 無法 一、Linux命令——文件、磁盤管理 1.文件管理 <1>查看文件信息:ls ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。 Linu

《C++ Primer Plus》學習筆記——第章 複合型別

程式設計練習 編寫一個C++程式,如下述輸出示例所示的那樣請求並顯示資訊 what's your first name? Betty Sue what's your last name? Yewe what letter grade do you deserve? B what'

《C++ Primer Plus》學習筆記——第章 複合型別

指標與自由儲存空間 指標是一個變數,其儲存的是值的地址,而不是值的本身。對於變數可以使用(&)地址運算子來獲取地址。 顯示地址時,常用的描述記憶體的表示法是十六進位制表示法。 對於常規變數,值是指定的量,而地址是派生量。 指標名錶示的是地址。*運算子被稱為間接值或解除引用運算

《C++ Primer Plus》學習筆記——第章 複合型別

結構 結構是一種比陣列更靈活的資料格式,因為同一個結構可以儲存多種型別的資料。 結構是OOP堡壘(類)的基石。 結構是使用者定義的結構,而結構宣告定義了這種型別的資料屬性。定義結構描述——他描述並標記了能夠儲存在結構中的各種資料型別。然後按描述建立結構變數。 使用結構體必須先結構宣告

《機器學習》 周志華學習筆記章 決策樹課後習題python 實現

一、基本內容 1.基本流程 決策樹的生成過程是一個遞迴過程,有三種情形會導致遞迴返回 (1)當前節點包含的yangben全屬於同一類別,無需劃分; (2)當前屬性集為空,或是所有yangben在所有屬性上的取值相同,無法劃分; (3)當前結點包含的yangben集合為空,不能

網路是怎樣連線的學習筆記-第章-光纖接入網FTTH

4.2 光纖接入網(FTTH) 4.2.1 光纖的基本知識 FTTH,是一種基於光纖的接入網技術。FTTH 的關鍵點在於對光纖的使用,所以先來介紹一些光纖的基本知識。 光纖的結構 它是由一種雙層結構的纖維狀透明材質(玻璃和塑料)構成的,通過在裡面的纖芯中傳導光訊號來傳輸數字資訊。

網絡是怎樣連接的學習筆記-第章-光纖接入網FTTH

有時 種類型 知識 adsl 改變 差異 學習 單模光纖 工作 4.2 光纖接入網(FTTH) 4.2.1 光纖的基本知識 FTTH,是一種基於光纖的接入網技術。FTTH 的關鍵點在於對光纖的使用,所以先來介紹一些光纖的基本知識。 光纖的結構 它是由一種雙層結構的纖維狀透

官網英文版學習——RabbitMQ學習筆記Work queues

In string bit 學會 on() true sleep 回調函數 user 工作隊列:把每個任務只發送給一個工作者。 上一篇我們是從一個指定的隊列發送接收消息,在本文中,我們將創建一個工作隊列,用於在多個工作者之間分配耗時的任務。

RabbitMQ學習筆記-----------------RabbitMQ不同的交換機進行路由

專案地址:https://github.com/gongxianshengjiadexiaohuihui/RabbitMQ/tree/master/Exchange_RabbitMQ 專案結構: 流程圖 補充知識: Connection是RabbitMQ的sockert連

RabbitMQ學習筆記-----------------RabbitMQ生產消費訊息

專案地址:https://github.com/gongxianshengjiadexiaohuihui/RabbitMQ/tree/master/Hello_RabbitMQ 專案結構 需要的jar包 專案流程圖 x 首先是生產者的類,我們需要與RabbitServ

RabbitMQ學習筆記-----------------RPC

    專案地址:https://github.com/gongxianshengjiadexiaohuihui/RabbitMQ/tree/master/RPC_RabbitMQ     RPC遠端服務呼叫,舉個例子就是客戶端遠端呼叫服務端的方法幫自己運

RabbitMQ學習筆記二:rabbitmq傳送接收訊息HelloworldJava版

一 引入rabbitmq java client 前面我們已經在本地(windows下)安裝配置好了RabbitMQ server。現在我們引入rabbitmq Java client。 在eclipse中建立一個maven專案,在pom.xml檔案中加

Andrew Ng機器學習筆記+Weka相關算法實現SVM和原始對偶問題

優化問題 坐標 出了 變量 addclass fun ber 找到 線性 這篇博客主要解說了Ng的課第六、七個視頻,涉及到的內容包含,函數間隔和幾何間隔、最優間隔分類器 ( Optimal Margin Classifier)、原始/對偶問題 ( Pr

ArcGIS API for JavaScript3.x 學習筆記[5] 加載底圖【高德在線地圖】

alex apt arcgis lex 添加 declare 學習 created ade /** * Created by WanderGIS on 2015/7/15. */ define(["dojo/_base/declare", "esri/geom

【安全牛學習筆記】​手動漏洞挖掘

security+ 漏洞 信息安全 手動漏洞挖掘本地文件包含lfi 查看文件 代碼執行 <?php echo shell_exec($_GET[‘cmd‘]);?> Apache access.log遠程文件包含rfi 出現概率少於lfi,

o'Reill的SVG精髓第二版學習筆記——第

使用 還需要 第四章 會有 屬性 輪廓 4.4 www. 進行 第四章:基本形狀 4.1線段 SVG可以使用<line>元素畫出一條直線段。使用時只需要指定線段起止點的x和y坐標即可。指定坐標時可以不帶單位,此時會使用用戶坐標,也可以帶上單位,如em、in等。

RabbitMQ學習筆記第一章:Rabbit簡介

處理機制 有用 都在 參數 ket 統一 宋體 interface 自己 RabbitMQ是目前非常熱門的一款消息中間件,不管是互聯網行業還是傳統行業都在大量地使用。RabbitMQ憑借其高可靠、易擴展、高可用及豐富的功能特性受到了越來越多的企業的青睞。 (一)什麽是消息中

官網英文版學習——RabbitMQ學習筆記Topic

fault 路徑 分享圖片 lazy ctrl+ hello sum byte[] style 在上一篇中使用直接交換器改進了我們的系統,使得它能夠有選擇的進行接收消息,但它仍然有局限性——它不能基於多個條件進行路由。本節我們就進行能夠基於多個條件進行路由的topi

官網英文版學習——RabbitMQ學習筆記RabbitMQ集群

sign 新版本 兩種 height node 停止 clas 普通模式 簡單 在第二節我們進行了RabbitMQ的安裝,現在我們就RabbitMQ進行集群的搭建進行學習,參考官網地址是:http://www.rabbitmq.com/clustering.