rabbitmq的特性
*.開源:
開發語言是erlang
*.平台和**商無關性
為幾乎全部開發語言提供了客戶端工具並能執行在所有主流計算機平台上
*.輕量級
執行核心功能以及諸如管理介面的外掛程式只需要不到40mb記憶體
*.面向大多數現代語言的客戶端開發庫
*靈活控制訊息通訊的平衡性 :效能與吞吐量平衡的靈活控制
*高延遲性環境外掛程式
*第三方外掛程式
*多層安全
rabbitmq基於amqp規範,該規範概括了rabbitmq的主要架構和通訊模式。
amqp模型早邏輯上定義了三種抽象元件用於指定訊息路由行為
*交換器:訊息**伺服器用於把訊息路由到佇列的元件
*佇列:用於儲存訊息的資料結構,位於硬碟或記憶體中
*繫結:一套規則,用於告訴交換訊息應該被儲存到那個佇列
amqp作為一種rpc傳輸機制
1.啟動會話
*由客戶端傳送請求到伺服器(以協議頭protocol header)
*伺服器通過connectiong.start回應協議頭請求來啟動
*客戶端測使用connection.startok響應幀來響應rpc請求
注意:要完成連線到rabbitmq需要完成三個同步rpc請求組成的序列,這三個rpc請求分別對應啟動、調整和打
開連線2.幀型別
*協議頭幀用於連線到rabbitmq僅使用一次
*方法幀攜帶傳送給rabbitmq或從rabbitmq接收到的rpc請求或響應
*內容頭幀包含一條訊息的大小和屬性
*訊息體幀包含訊息的內容
*心跳幀在客戶端與rabbitmq之間進行傳遞,作為一種效驗機制確保連線的兩端都可用且在正常工作
傳送訊息時,使用方法幀、內容頭幀和訊息體幀項rabbitmq傳送訊息。
方法幀:傳送訊息的第乙個幀,攜帶命令和執行所需的引數
內容頭幀:包含訊息屬性以及訊息體大小。
訊息體幀:如果訊息體超過幀大小上限,則該訊息體被拆分為多個訊息體幀。
在方法幀和內容頭幀中儲存的二進位制打包資料,而訊息體幀中的資料沒有處理過,可以從純文字到二進位制影象
資料的任何內容
方法幀結構:
內容頭幀
訊息體幀
宣告交換器
在rabbitmmq中用exchange.declaer命令建立交換器,穿件成功則傳送exchange.declaerok,建立失敗則傳送exchange.close並傳送建立失敗的原因。
宣告佇列:queue.declaer建立佇列,同樣要開啟乙個信到,建立失敗則關閉。
繫結佇列到交換器:queue.bind每次只能指定乙個佇列
RabbitMQ學習筆記1
博主從事網路程式設計3年了,但是說來慚愧的是,工作中沒有使用過訊息佇列。所以呢,打算從今天開始系統學習一些訊息佇列相關的知識,部落格也就作為筆記了。記錄一下自己的一些理解過程,有不對之處希望各位指出。生產者 消費者與訊息佇列 首先呢,訊息佇列不生產資料,他只是乙個資訊的搬運工具。資料由生產者提供,經...
RabbitMQ學習 1 RabbitMQ介紹
rabbitmq是乙個訊息 mq表示的是message queue,即訊息佇列的意思。它的核心原理就是接受和傳送訊息。rabbitmq相關的專有名詞 1 生產 producing 即傳送訊息。生產者 producer 指傳送訊息的程式,一般用p表示。2 佇列 queue 訊息儲存在佇列中,通過應用程...
rabbitmq學習筆記一
首先我們先看rabbitmq原理圖 exchange交換器 接受訊息和路由訊息,然後將訊息傳送給訊息佇列。對於每乙個虛擬主機內部,交換器有獨一無二的名字 應用程式在其許可權範圍之內可以自由建立 共享 使用和銷毀交換例項。持久交換器可以使持久的 臨時的 或者自動刪除的。持久直到顯式刪除時消失 臨時交換...