環境變數配置erlang_home 安裝路徑
注意事項
安裝erlang 時注意 一致
c:\windows\system32\config\systemprofile\.erlang.cookie
c:\users\使用者名稱\.erlang.cookie
出現失敗時
rabbit-service start 啟動服務
rabbit-service stop 關閉服務
rabbit-service remove 移除服務
rabbitmq-plugins enable rabbitmq_management 安裝頁面管理工具
//獲取連線
connectionfactory connectionfactory = new connectionfactory();
//位址
connectionfactory.sethost("127.0.0.1");
//埠號
connectionfactory.setport(5672);
//使用者名稱
connectionfactory.setusername("guest");
//密碼
connectionfactory.setpassword("guest");
//獲取連線
connection connection = connectionfactory.getconnection();
//獲取通道
channel channel = connection.getchannel();
//test 佇列名稱
channel.queuedeclare("test",false,false,false,null);
//訊息
string message = "this is a test message";
//傳送訊息
channel.basicpublish("","test",null,message.getbytes());
//關閉頻道 關閉連線
channel.close();
connection.close();
connectionfactory 用來獲取連線
connection rabbitmq的socket連線,豐庄路socket協議相關部分邏輯
channel用來定義queue(佇列)定義exchange(交換機)繫結queue與exchange 發布訊息等操作
rabbitmq的內部物件 用來儲存訊息
message acknowledgment
訊息確認機制
mq在收到訊息回執時將訊息從queue中移除,如果沒有收到回執,並檢測到消費者的rabbitmq連線斷開,會將訊息傳送給其它消費者(如果存在多個消費者)處理
開發過程注意
處理完業務邏輯後,沒有傳送回執給rabbitmq,會導致queue中的訊息越來越多,消費者重啟後出現訊息的重複消費問題
訊息的持久化以及訊息的事務性
prefetch count
可以設定該引數控制發給每個消費者的訊息數.
宣告queue
宣告方式 queue.declare
總結
存活週期僅限於當前連線
自動刪除的特性
僅能建立一次
路由規則
消費者訂閱訊息
多個消費者同時訂閱同乙個佇列,rabbitmq是採用迴圈的方式分發訊息的,每一條訊息只能被乙個訂閱者接收.消費者在接到訊息時,需要給伺服器傳送一套確認命令,可以在handeldelivery中呼叫basic.ack實現,也可以在consume某個佇列時,設定autoack屬性為true.如果消費者在接到訊息以後還沒來得及返回ack就斷開了連線,訊息伺服器會重傳該訊息給下乙個訂閱者,沒有訂閱者就會儲存該訊息.
生產者訊息確認
事務機制
channel channel = getchannel();
//將通道置為 publisher confirm 模式
try catch (ioexception e)
傳送方確認機制
channel channel = getchannel();
//將通道置為 publisher confirm 模式
channel.confirmselect();
channel.basicpublish("test_direct_exchange", "test_queue",
null, "this is a test msg".getbytes());
if (channel.waitforconfirms())
channel.close();
批量confirm
非同步confirm
qps
非同步confirm 支援的峰值最高
均值 非同步與批量相差不多 大約是其他兩種的五到六倍
均值 普通confirm 比事務方式略高
訊息的消費
對於同乙個訊息佇列 如果擁有多個消費者時 佇列收到的訊息將以輪詢的分發方式傳送給消費者
Ubuntu apt 使用指南
起初gnu linux系統中只有.tar.gz。使用者必須自己編譯他們想使用的每乙個程式。在debian出現之後,人們認為有必要在系統中新增 一種機制用來管理安裝在計算機上的軟體包。人們將這套系統稱為dpkg。至此著名的 package 首次在gnu linux上出現。不久之後紅帽子也 開始著手建立...
CImageList使用指南
1.綜述 在mfc 中cimagelist 類封裝了 影象列表控制項的功能,影象列表是乙個具有相同大小的 影象 可以是不同 型別 的集合,其主要用於 應用程式中大規模 圖示的儲存。該控制項是不可 見的,通常與其它如 clistbox ccombobox ccomboboxex ctabctrl 以及...
CImageList使用指南
cimagelist使用指南 1.綜述 在 mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大 規模圖示的儲存,該控制項是不可見的。通常與其它如clistbox,ccombobox,ccomboboxex以及ct...