RabbitMq 四 集群屬性

2021-10-24 15:21:50 字數 1782 閱讀 2441

rabbitmq節點通過節點名稱來標識,每個節點名稱包含兩個部分:字首和主機名。

例如:[email protected]。rabbit是字首,node1.message.svc.local是主機名。

集群中的每個節點的名稱必須是唯一的。如果有多個節點執行在同一臺機器上(一般開發環境為了節省資源會部署在同一臺機器上),可以通過字首來進行區分,例如:rabbit1@hostname, rabbit2@hostname

在集群中依賴階段名稱來進行標識和互相通訊,所以每個節點的主機名必須要正常解析,通常是由dns解析或者本地hosts檔案配置。當節點啟動的時候,會檢查當前節點是否標識了節點名稱(配置rabbitmq_nodename環境變數),如果沒有配置節點名稱,當前節點會解析他的hostname拼上rabbit來計算出他的節點名稱。例如:rabbit@6018822f21e7

amqp協議: 即advanced message queuing protocol, 乙個提供統一訊息服務的應用層標準高階訊息佇列協議,是應用層協議的乙個開放標準,為面向訊息的中介軟體設計。基於此協議的客戶端與訊息中介軟體可傳遞訊息,並不受客戶端/中介軟體不同產品,不同的開發語言等條件的限制。

stomp協議,streaming text orientated message protocol,是流文字定向訊息協議,是一種為mom(message oriented middleware,面向訊息的中介軟體)設計的簡單文字協議。它提供了乙個可互操作的連線格式,允許stomp客戶端與任意stomp訊息**(broker)進行互動。由於其設計簡單,很容易開發客戶端,因此在多種語言和多種平台上得到廣泛應用。

mqtt(訊息佇列遙測傳輸)是iso 標準(iso/iec prf 20922)下基於發布/訂閱正規化的訊息協議。它工作在 tcp/ip協議族上,是為硬體效能低下的遠端裝置以及網路狀況糟糕的情況下而設計的發布/訂閱型訊息協議

epmd:乙個小的額外的守護程序,執行在每個rabbitmq節點旁邊,用來發現執行的節點監聽哪個埠。可以被集群中的其他節點和客戶端工具訪問,預設埠是4369,可以通過erl_epmd_port環境變數來配置。集群中的所有主機必須使用相同的epmd埠。

節點和客戶端工具訪問特點節點步驟:

1. 把hostname解析成ipv4或ipv6位址

2. 訪問上面解析出來的位址上的epmd埠號

3. 查詢epmd所在節點的rabbitmq提供的訪問埠(預設5672)

4. 通過解析出來的ip位址和epmd查詢出來的埠連線rabbitmq服務節點

5. 處理節點通訊

集群中的資料和操作狀態是所有節點共享的,但是訊息佇列預設只會存在其中某乙個節點上,雖然可以通過所有節點來訪問和修改任何乙個佇列。在集群中想要某個佇列在多個節點上存在副本,可以考慮集群佇列和映象佇列。

rabbitmq不像zookeeper這種分布式集群,存在leader和follower節點,它的所有節點的角色都是平等的,沒有特殊節點。

rabbitmq節點之間或者節點和客戶端工具之間互相通訊需要相同的共享金鑰,稱之為erlang cookie。erlang cookie是乙個由字母、數字、字元組成的長度為255的字串,通常存在在本地檔案中,需要授權rabbitmq程序訪問。集群中的所有節點必須有相同的erlang cookie。如果檔案不存在,rabbitmq伺服器啟動的時候會建立乙個隨機值。通常只有開發環境會使用這種隨機生成的cookie。

linux系統 cookie檔案儲存在/var/lib/rabbitmq/.erlang.cookie中

搭建 rabbitmq 3 9 集群篇

參照文章,搭建單體應用 本文 host 如 下圖 同步 cookie scp var lib rabbitmq erlang.cookie root node 1 var lib rabbitmq scp var lib rabbitmq erlang.cookie root node 2 var ...

(四)整合學習

2.2.1 分類 二分類為例,輸出 1 1 2.2.2 回歸 r2回歸為例 2.2.3 正則化booster 弱學習器,常用gbtree eta learning rate min child weight 預設1 子節點的權重閾值。它刻畫的是 對於乙個葉子節點,當對它採取劃分之後,它的所有子節點的...

彙編第四集

第四集彙編 段表 gdt ldt gdt 全域性段描述符表 本身放在gdtr這個暫存器 ldt leal src,dest 計算乙個位址放到dest裡面 位址計算指令 編譯器用lea來計算位址,不會真的像上面的那樣去計算。我的圖呢?上面顯示的是常用的雙運算元指令 addl subl imill sa...