Haproxy Rabbit 集群 簡要介紹

2022-03-22 12:18:23 字數 4139 閱讀 4951

# 兩台主機都安裝上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資料夾...