rabbitmq 集群搭建 單機多實例版
阿新 • • 發佈:2018-06-12
rabbitmq 集群 單機多實例版本rabbitmq 是一個開源的AMQP實現,用ERLANG編寫,由於erlang天生支持分布式高並發的語言,這也是rabbitmq被許多開發者所喜愛。
AMQP概念,這裏不做介紹,可以google一下,概念很重要,概念很重要,概念很重要,重要的事說三遍。
下面開始集群搭建,rabbitmq集群分為單機,偽集群(單機多實例),集群(多機多實例),很多開發者想自己搭建一個集群,來測試一些mq特性。
本文主要介紹偽集群方式,也就是在一臺虛擬機上,搭建rabbitmq多實例,然後建立集群連接。而正規集群方式,其實都差不多。
單機多實例集群搭建開始
三個節點目錄結構 備註:節點目錄結構可自己創建,按照自己的習慣而已。 節點1: path1 = /usr/local/software/rabbitmq/rabbitmq_server/ 節點2: path2 = /usr/local/software/rabbitmq/rabbitmq_server1/ 節點3: path3 = /usr/local/software/rabbitmq/rabbitmq_server2/ 配置文件目錄: 分別在三個節點下創建配置文件: 例如,節點2創建配置文件: 在這個路徑下: /usr/local/software/rabbitmq/rabbitmq_server/etc/rabbitmq/ **創建配置文件:rabbitmq.conf、rabbitmq-env.conf** 創建後的文件應該顯示如下 [root@bogon rabbitmq]# pwd /usr/local/software/rabbitmq/rabbitmq_server1/etc/rabbitmq [root@bogon rabbitmq]# ll 總用量 12 -rw-r--r--. 1 root root 23 6月 11 21:55 enabled_plugins -rw-r--r--. 1 root root 58 6月 11 21:37 rabbitmq.conf -rw-r--r--. 1 root root 45 6月 11 21:37 rabbitmq-env.conf 默認paht/etc/rabbitmq這個目錄下是沒有這這兩個配置文件的,需手動創建 ** touch rabbitmq-env.conf** rabbitmq-env.conf內容如下: NODE_PORT=5673 NODENAME=rabbitmq-node1 ** touch rabbitmq.config** rabbitmq.config內容如下: [ {rabbitmq_management, [{listener, [{port, 15673}]}]} ]. 其它的節點目錄下,可以都創建一下,或者cp過去也可以,但是要註意更改兩個地方,一是NODE_PORT=5673更改端口,還有一個你也猜到了port, 15673需要更改。 檢查一下,三個節點下是否都有這兩個配置文件 **修改hosts文件:** 由於本機搭建是偽集群,所以不用配置 .erlang.cookie,只需配置本機的hosts文件 修改前需要知道本機的Hostname值: [root@bogon rabbitmq]# hostname bogon 修改host文件: vim /etc/hosts 加入配置,ip則是本機ip,bogon是hostname,rabbtmq-node1則是節點名稱: 10.1.1.1 rabbitmq-node1@bogon 10.1.1.1 rabbitmq-node2@bogon 10.1.1.1 rabbitmq-node3@bogon **關鍵節點** 啟動節點1 ./rabbitmq_server1/sbin/rabbitmq-server -detached (-detached 是後臺啟動方式) 啟動節點2: ./rabbitmq_server2/sbin/rabbitmq-server -detached 停止節點服務,但不是節點down了。 cd root路徑下: ./rabbitmq_server2/sbin/rabbitmqctl stop_app ./rabbitmq_server2/sbin/rabbitmqctl reset (重置節點,擔心此節點加入過其他的集群) ./rabbitmq_server2/sbin/rabbitmqctl join_cluster --ram rabbitmq-node1@bogon ./rabbitmq_server2/sbin/rabbitmqctl start_app (重啟節點恢復應用) 此時查看節點狀態: [root@bogon rabbitmq]# ./rabbitmq_server/sbin/rabbitmqctl cluster_status Cluster status of node ‘rabbitmq-node1@bogon‘ ... [{nodes,[{disc,[‘rabbitmq-node1@bogon‘]},{ram,[‘rabbitmq-node2@bogon‘]}]}, {running_nodes,[‘rabbitmq-node2@bogon‘,‘rabbitmq-node1@bogon‘]}, {cluster_name,<<"rabbitmq-node1@bogon">>}, {partitions,[]}, {alarms,[{‘rabbitmq-node2@bogon‘,[]},{‘rabbitmq-node1@bogon‘,[]}]}] 會發現節點兩個節點已經是集群了,‘rabbitmq-node1‘節點是磁盤節點,‘rabbitmq-node2‘是內存節點 啟動節點3: 重復節點2的啟動步驟,成功加入到集群裏。 這樣集群就基本搭建完了。 問題: 1、第一次登陸rabbitmq_management圖形化界面,登陸不進去? 如果你安裝了圖形化界面工具,rabbitmq_management,可以訪問對應的節點。 第一次訪問的時候,默認用戶名和密碼都是guest,guest,默認事localhost,那麽我們用 授權,新建用戶設置。 cd /usr/local/software/rabbitmq/rabbitmq_server1/sbin這個目錄 sh rabbitmqctl add_user admin admin sh rabbitmqctl list_users sh rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" sh rabbitmqctl list_permissions -p / sh rabbitmqctl set_user_tags admin administrator sh rabbitmqctl list_users 這樣就可以進入到頁面裏,用戶名admin,密碼admin ,可以試試其它的節點下,創建用戶。 查看rabbitmq_management頁面;
rabbitmq 集群搭建 單機多實例版