# 兩台主機都安裝上rabbitmq
yum install -y rabbitmq-server
# 兩台主機都配置/etc/hosts檔案
192.168.23.10 rabbitmq1
192.168.23.11 rabbitmq2
# 兩台主機都以集群的方式啟動rabbitmq-server
rabbitmq-server -detached
# 此時檢視 rabbitmqctl cluster_status ,會發現:兩台主機在各自的集群上
# 因此,將rabbitmq1加入rabbitmq2的集群中,返過來也可以。先將rabbitmq1的服務停止,再加入到rabbitmq2的集群中,但是node2需要先將cookie檔案拷貝到node1。如果碰到問題,需要將node2的rabbitmq程序kill掉,在啟動rabbitmq-server服務
scp /var/lib/rabbitmq/.erlang.cookie 192.168.23.10:/var/lib/rabbitmq/.erlang.cookie(在node2上執行)
rabbitmqctl join_cluster "rabbit@rabbitmq2" --ram(在node1上執行, --ram表示是否為記憶體節點,如果不加為磁碟disc節點)
# 再次啟動rabbitmq1
# 再次檢視rabbitmq1的集群狀態,會發現此時rabbitmq1的集群的集群名稱為:"rabbit@rabbitmq2"
rabbitmqctl cluster_status
啟動管理外掛程式
rabbitmq-plugins enable rabbitmq_management
檢視外掛程式
rabbitmq-plugins list
重啟服務rabbitmq
# 返回web介面
# 但是此時可能無法檢視到rabbitmq2節點的資訊,因為rabbitmq2沒有啟用rabbitmq_management外掛程式,因此啟用外掛程式,在重啟服務
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
# 確保每乙個節點的15672、25672、5672埠都是監聽的
netstat -lntup
# 此時這兩個節點都是disc節點,可以修改為ram節點, 將rabbitmq2改為ram節點
rabbitmqctl change_cluster_node_type ram
# 再次檢視集群狀態,發現rabbitmq1已經為ram節點
rabbitmqctl cluster_status
# 在rabbitmq2上建立佇列映象,映象需要指定策略,策略是用來控制和修改群集範圍的佇列行為和exchange行為的
# 建立了乙個名為ha-allqueue策略,「^」 表示所有匹配所有佇列名稱,策略模式ha-mode為 all 即複製到所有節點,包含新增節點。
rabbitmqctl set_policy ha-allqueue "^" ''
# 在新增一條主機節點安裝haproxy
yum install -y haproxy
# 修改配置檔案/etc/haproxy/haproxy.cfg
global
# 指定日誌記錄路徑,這個local2是需要在/etc/rsyslog.conf檔案中指定的,指定了日誌儲存路徑之後,需要重啟rsyslog服務哦
log 127.0.0.1 local2
# 指定haproxy的執行環境
chroot /var/lib/haproxy
# 指定程序的pid
pidfile /var/run/haproxy.pid
# 指定單個程序的最大併發連線數
maxconn 4000
# 指定允許haproxy的使用者
user haproxy
# 指定允許haproxy的組
group haproxy
# 指定haproxy以守護程序模式執行
daemon
# 設定後台執行2個haproxy程序,但是後台執行了3個程序
# nbproc 2
# 指定unix socket通訊(基本沒用過)
# stats socket /var/lib/haproxy/stats
# 這裡是預設的選項,如何在listen段,backend段,frontend段中將這些選項按需求重新制定
defaults
# 指定預設的模式
# 指定日誌資訊使用全域性指定的日誌儲存路徑,全域性日誌是儲存在rsyslog服務中
log global
# 將log日誌記錄到rsyslog日誌伺服器中,指定日誌級別為notice級別
log 192.168.23.10 local12 notice
# 日誌格式可以不指定,有其預設的值
#log-format %t\ %t\ some\ text
# 指定壓縮型別
compression algo gzip
# 指定需要壓縮的資源型別
# 在後端伺服器中可以記錄客戶端的源ip位址,在日誌中加上%i
option forwardfor except 127.0.0.1/8
# 如果後端伺服器不提供服務,那麼將會重新di
# 指定接受10000個併發
maxconn 10000
# haproxy統計頁面配置段
listen stats
# 指定統計頁面監聽的埠
bind *:33559
# 指定統計頁面執行的模式
# 指定開啟統計頁面功能
stats enable
# 如果不設定uri,預設是/haproxy?stats
stats uri /admin
# 指定登入是提示資訊,\表示轉義空白字元
stats realm haproxy\ statistics
# 指定使用者名稱和密碼
stats auth uplooking:123456
# 指定統計頁面自動重新整理的時長
stats refresh 20
# 如果使用者認證成功,統計頁面可以被訪問
stats admin if true
#隱藏統計頁面上haproxy的版本資訊
stats hide-version
listen rabbitmq_cluster
bind *:5672
option tcplog
mode tcp
timeout client 3h
timeout server 3h
balance roundrobin
# inter 2000 是健康狀態檢測的時間間隔,rise 2:2次請求成功認為伺服器可用,fall 3:3次請求不成功認為伺服器不可用
server mq1 192.168.23.10:5672 check inter 5s rise 2 fall 3
server mq2 192.168.23.11:5672 check inter 5s rise 2 fall 3
3:檢測配置檔案
haproxy -c -f /etc/haproxy/haproxy.cfg
4:登入haproxy的管理介面檢視是否rabbitmq集群開始工作了
MySQL cluster集群 NDB集群學習
公司主業務用的mysql集群是官方自帶的mysql cluster,mysql自帶的集群模式,這個集群的模式和mgr pxc 主從 有點不一樣。一 儲存引擎不是innodb,mysql cluster用的是ndb引擎 二 資料儲存方式不同,mysql的其他集群方式資料是存在磁碟上的,中間資料的快取用...
zookeeper集群部署 kafka集群部署
wget wget 解壓到目錄 tar zxvf apache zookeeper 3.5.8 bin.tar.gz c usr local 進入目錄 cd usr local 建立軟連線 ln s usr local apache zookeeper 3.5.8 zookeeper 複製配置檔案 ...
redis搭建集群(偽集群)
1 建立6個資料夾 2 複製redis.conf檔案,並修改redis.conf 配置檔案 3 建立集群 4 連線客戶端 5 檢視狀態 建立 6個資料夾來存放redis.conf,因為redis集群最小需要的是,三組三從,每個資料夾代表一台伺服器,6007跟6008可忽略 先複製乙個到6001資料夾...