日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RabbitMQ管理(5)——集群管理

發布時間:2024/4/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RabbitMQ管理(5)——集群管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。

歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/rabbitmq-management-of-cluster-management/


rabbitmqctl join_cluster {cluster_node} [–ram]
將節點加入指定集群中。在這個命令執行前需要停止RabbitMQ應用并重置節點。更多詳細內容請參考RabbitMQ安裝。

rabbitmqctl cluster_status
顯示集群的狀態。更多詳細內容請參考RabbitMQ安裝。

rabbitmqctl change_cluster_node_type {disc|ram}
修改集群節點的類型。在這個命令執行前需要停止RabbitMQ應用。更多詳細內容請參考RabbitMQ安裝。

rabbitmqctl forget_cluster_node [–offline]
將節點從集群中刪除,允許離線執行。更多詳細內容請參考RabbitMQ安裝。

rabbitmqctl update_cluster_nodes {clusternode}
在集群中的節點應用啟動前咨詢clusternode節點的最新信息,并更新相應的集群信息。這個和join_cluster不同,它不加入集群。考慮這樣一種情況,節點A和節點B都在集群中,當節點A離線了,節點C又和節點B組成了一個集群,然后節點B又離開了集群,當A醒來的時候,它會嘗試聯系節點B,但是這樣會失敗,因為節點B已經不在集群中了。rabbitmqctl update_cluster_nodes -n A C可以解決這種場景。
示例如下:

##假設已有node1和node組成的集群 ##1.初始狀態 [root@node1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}] ##2.關閉node1節點的應用 [root@node1 ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@node1 ##3.之后將node3加入到集群中(rabbitmqctl join_cluster rabbit@node2) ##4.再將node2節點的應用關閉 ##5.最后啟動node1節點的應用,此時會報錯 [root@node1 ~]# rabbitmqctl start_app Starting node rabbit@node1 BOOT FAILED =========== Timeout contacting cluster nodes: [rabbit@node2]. ....(省略) ##6.如果在啟動node1節點的應用之前咨詢node3并更新相關集群信息則可以解決這個問題 [root@node1 ~]# rabbitmqctl update_cluster_nodes rabbit@node3 Updating cluster nodes for rabbit@node1 from rabbit@node3 [root@node1 ~]# rabbitmqctl start_app Starting node rabbit@node1 ##7.最終集群狀態 [root@node1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node3]}]},{running_nodes,[rabbit@node3,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node3,[]},{rabbit@node1,[]}]}]

rabbitmqctl force_boot
確保節點可以啟動,即使它不是最后一個關閉的節點。通常情況下,當關閉整個RabbitMQ集群時,重啟的第一個節點應該是最后關閉的節點,因為它可以看到其它節點所看不到的事情。但是有時會有一些異常情況出現,比如整個集群都掉電而所有節點都認為它不是最后一個關閉的。在這種情況下,可以調用rabbitmqctl force_boot命令,這就告訴節點可以無條件的啟動節點。在此節點關閉后,集群的任何變化,它都會丟失。如果最后一個關閉的節點永久丟失了,那么你需要優先使用rabbitmqctl forget_cluster_node --offline命令,因為它可以確保鏡像隊列的正常運轉。
示例如下:

[root@node2 ~]# rabbitmqctl force_boot Forcing boot for Mnesia dir /opt/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@node2 [root@node2 ~]# rabbitmq-server –detached

rabbitmqctl sync_queue [-p vhost] {queue}
指示未同步隊列queue的slave鏡像可以同步master鏡像行的內容。同步期間此隊列會被阻塞(所有此隊列的生產消費者都會被阻塞),直到同步完成。此條命令執行成功的前提是隊列queue配置了鏡像。注意,未同步隊列中的消息被耗盡后,最終也會變成同步,此命令主要用于未耗盡的隊列。
示例如下:

[root@node1 ~]# rabbitmqctl sync_queue queue Synchronising queue 'queue' in vhost '/'

rabbitmqctl cancel_sync_queue [-p vhost] {queue}
取消隊列queue同步鏡像的操作。
示例如下:

[root@node1 ~]# rabbitmqctl cancel_sync_queue queue Stopping synchronising queue 'queue' in vhost '/'

rabbitmqctl set_cluster_name {name}
設置集群名稱。集群名稱在客戶端連接時會通報給客戶端。Federation和Shovel插件也會有用到集群名稱的地方。集群名稱默認是集群中第一個節點的名稱,通過這個命令可以重新設置。
示例如下:

[root@node1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"rabbit@node1">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}] [root@node1 ~]# rabbitmqctl set_cluster_name cluster_hidden Setting cluster name to cluster_hidden [root@node1 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},{running_nodes,[rabbit@node2,rabbit@node1]},{cluster_name,<<"cluster_hidden">>},{partitions,[]},{alarms,[{rabbit@node2,[]},{rabbit@node1,[]}]}]

歡迎跳轉到本文的原文鏈接:https://honeypps.com/mq/rabbitmq-management-of-cluster-management/


歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。


總結

以上是生活随笔為你收集整理的RabbitMQ管理(5)——集群管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。