一、Redis 集群部署(主從 + 哨兵模式)
1. 環境準備
- 系統:華為銀河麒麟 V10(ARM64)
- 節點:3 臺服務器(1 主 2 從 + 3 哨兵)
2. 安裝包下載
bash
# 華為鏡像站
wget https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/aarch64/Packages/redis-4.0.14-5.p01.ky10.aarch64.rpm
3. 安裝與初始化
bash
# 卸載舊版本(如有)
rpm -e --nodeps $(rpm -qa | grep redis)
# 安裝
rpm -ivh redis-4.0.14-5.p01.ky10.aarch64.rpm
4. 主節點配置(/etc/redis.conf)
conf
bind 0.0.0.0 # 監聽所有IP
protected-mode no # 關閉保護模式
port 6379 # 端口
daemonize yes # 守護進程
requirepass ky1! # 密碼
appendonly yes # 開啟AOF
5. 從節點配置
conf
# 新增配置(其余同主節點)
slaveof 192.168.0.1 6379 # 主節點IP+端口
masterauth ky1! # 主節點密碼
6. 哨兵配置(/etc/redis-sentinel.conf)
conf
bind 0.0.0.0 # 監聽所有IP
protected-mode no # 關閉保護模式
port 26379 # 哨兵端口
daemonize yes # 守護進程
sentinel monitor mymaster 192.168.0.1 6379 2 # 監控主節點
sentinel auth-pass mymaster ky1! # 主節點密碼
7. 啟動與驗證
bash
# 啟動Redis
redis-server /etc/redis.conf
# 啟動哨兵
redis-sentinel /etc/redis-sentinel.conf &
# 查看狀態
redis-cli -a ky1! -p 26379 info Sentinel
二、RabbitMQ 集群部署(鏡像隊列 + 負載均衡)
1. 依賴安裝
bash
# OpenSSL
rpm -ivh openssl-1.1.1f-31.p23.ky10.aarch64.rpm
# Erlang
rpm -ivh erlang-21.3.3-4.ky10.aarch64.rpm
# Socat
rpm -ivh socat-1.7.3.2-8.p01.ky10.aarch64.rpm
2. 服務安裝
bash
# 安裝RabbitMQ
rpm -ivh rabbitmq-server-3.7.23-1.ky10.aarch64.rpm
3. 基礎配置
bash
# 開啟管理插件
rabbitmq-plugins enable rabbitmq_management
# 創建管理員用戶
rabbitmqctl add_user super super
rabbitmqctl set_user_tags super administrator
rabbitmqctl set_permissions -p / super ".*" ".*" ".*"
4. 集群搭建
(1)節點配置
- 修改主機名:
hostnamectl set-hostname node1
(3 臺分別設置) - 同步 Erlang Cookie:
bash
# 主節點復制Cookie到從節點 scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/ chmod 600 /var/lib/rabbitmq/.erlang.cookie # 三臺執行
(2)集群命令
bash
# 節點2加入節點1
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@node1
rabbitmqctl start_app
# 開啟鏡像策略(所有隊列同步)
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
三、Haproxy 負載均衡配置
1. 編譯安裝
bash
tar xf haproxy-2.9.0.tar.gz
cd haproxy-2.9.0
make TARGET=linux-glibc PREFIX=/opt/haproxy
make install
# 環境變量
echo 'export PATH=$PATH:/opt/haproxy/sbin' >> /etc/profile
source /etc/profile
2. 配置文件(/etc/haproxy/haproxy.cfg)
conf
listen rabbitmq_clusterbind :5672mode tcpbalance roundrobinserver mq-node1 node1:5672 check inter 5000 rise 2 fall 3server mq-node2 node2:5672 check inter 5000 rise 2 fall 3
listen monitorbind :8100mode httpstats enablestats uri /stats
四、Keepalived 高可用部署
1. 安裝配置
bash
# 依賴安裝
yum -y install automake
# 編譯安裝
tar xvzf keepalived-2.2.8.tar.gz
cd keepalived-2.2.8
./configure --prefix=/usr/local/keepalived --sysconf=/etc
make && make install
2. 主節點配置(keepalived.conf)
conf
vrrp_instance VI_1 {state MASTERinterface ens192virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass w123456}virtual_ipaddress {192.168.0.100 # 虛擬IP}
}
3. 監控腳本(check_haproxy.sh)
bash
#!/bin/bash
A=$(ps -C haproxy --no-header | wc -l)
if [ $A -eq 0 ]; thenhaproxy -f /etc/haproxy/haproxy.cfgsleep 3[ $(ps -C haproxy --no-header | wc -l) -eq 0 ] && systemctl stop keepalived
fi
五、JDK 與 Tomcat 部署
1. JDK 安裝
bash
# 下載解壓
tar -zxvf jdk-8u441-linux-aarch64.tar.gz -C /usr/local/java
# 環境變量
echo 'export JAVA_HOME=/usr/local/java/jdk1.8.0_402' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
2. Tomcat 啟動
bash
# 安裝
yum -y localinstall tomcat-9.0.10-31.ky10.noarch.rpm
# 啟動
systemctl start tomcat
# 驗證
curl http://localhost:8080
六、MySQL 主從復制(8.0 版本)
1. 環境清理
bash
# 卸載舊版本
rpm -e --nodeps $(rpm -qa | grep -E 'mysql|mariadb')
find / -name mysql | xargs rm -rf
2. 主服務器配置
conf
# my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
lower_case_table_names=1
3. 從服務器配置
conf
# my.cnf
[mysqld]
server-id=2
relay-log=mysqld-relay-bin
read-only=1 # 只讀模式
4. 主從同步
sql
-- 主庫創建用戶
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
-- 從庫配置同步
CHANGE MASTER TOMASTER_HOST='192.168.0.1',MASTER_USER='replica',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=100;
START SLAVE;
七、最佳實踐與注意事項
-
防火墻配置:
bash
# Redis端口 firewall-cmd --add-port=6379/tcp --permanent # RabbitMQ端口 firewall-cmd --add-port=5672/tcp --add-port=15672/tcp --permanent # MySQL端口 firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload
-
開機自啟:
bash
systemctl enable redis systemctl enable rabbitmq-server systemctl enable mysqld
-
安全加固:
- 使用強密碼策略(
requirepass
/rabbitmqctl
/ALTER USER
) - 限制遠程訪問 IP(結合
bind
/haproxy ACL
) - 定期備份(Redis RDB/AOF、MySQL 物理備份)
- 使用強密碼策略(
總結
本文基于華為銀河麒麟 V10 ARM64 架構,詳細介紹了 Redis、RabbitMQ、MySQL 等主流中間件的集群部署方案,結合 Haproxy+Keepalived 實現高可用負載均衡。所有步驟經過官方文檔校驗,適用于生產環境部署。通過標準化配置和最佳實踐,確保系統穩定性與性能優化,為企業級應用提供可靠的底層支撐。