華為銀河麒麟 V10(ARM)系統軟件部署全攻略:Redis、RabbitMQ、MySQL 等集群搭建指南

一、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;

七、最佳實踐與注意事項

  1. 防火墻配置

    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
    
  2. 開機自啟

    bash

    systemctl enable redis
    systemctl enable rabbitmq-server
    systemctl enable mysqld
    
  3. 安全加固

    • 使用強密碼策略(requirepass/rabbitmqctl/ALTER USER
    • 限制遠程訪問 IP(結合bind/haproxy ACL
    • 定期備份(Redis RDB/AOF、MySQL 物理備份)

總結

本文基于華為銀河麒麟 V10 ARM64 架構,詳細介紹了 Redis、RabbitMQ、MySQL 等主流中間件的集群部署方案,結合 Haproxy+Keepalived 實現高可用負載均衡。所有步驟經過官方文檔校驗,適用于生產環境部署。通過標準化配置和最佳實踐,確保系統穩定性與性能優化,為企業級應用提供可靠的底層支撐。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82334.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql數據庫進階

一、Mysql組織架構 連接層 1.驗證用戶的身份,用戶名密碼是否匹配 2.提供兩種連接方式(TCP/IP連接、socket連接) 3.連接層提供了一個與sql層交互的線程 SQL層 1.接收連接層傳過來的SQL語句 2.驗證執行的SQL語法 3.驗證SQL的語義(DDL,DML,DQL,DCL) 4.解析器:解析SQL語句,生…

系統思考:短期困境與長期收益

最近在項目中,一直有學員會提到一個議題,如何平衡當前困境和長期收益? 我的思考是在商業和人生的路上,我們常常聽到“魚和熊掌不可兼得”的說法,似乎短期利益和長期目標注定是對立的。但事實上,魚與熊掌是…

Spring Web MVC快速入門

什么是Spring Web MVC Spring Web MVC 是基于 Servlet API 構建的原始 Web 框架,從?開始就包含在 Spring 框架中。它的正式名稱“Spring Web MVC”來?其源模塊的名稱(Spring-webmvc),但它通常被稱為"Spring MVC". View(視圖) 指在應?程序…

DeepSeek基于注意力模型的可控圖像生成

DeepSeek大模型高性能核心技術與多模態融合開發 - 商品搜索 - 京東 圖像的加噪與模型訓練 在擴散模型的訓練過程中,首先需要對輸入的信號進行加噪處理,經典的加噪過程是在圖像進行向量化處理后在其中添加正態分布,而正態分布的值也是與時間…

第十六屆藍橋杯B組第二題

當時在考場的時候這一道題目 無論我是使用JAVA的大數(BIGTHGER)還是賽后 使用PY 都是沒有運行出來 今天也是突發奇想在B站上面搜一搜 看了才知道這也是需要一定的數學思維 通過轉換 設X來把運算式精簡化 避免運行超時 下面則是代碼 public class lanba…

HT71663同步升壓2.7V-13V輸入10A聚能芯半導體禾潤一級代理

在便攜式設備飛速發展的今天,電源轉換效率與產品尺寸始終是行業難以平衡的難題。但現在,HT71663 高功率全集成升壓轉換器強勢登場,一舉打破僵局,為便攜式系統帶來顛覆性的高效小尺寸解決方案!? HT71663 的卓越性能&am…

Unity:輸入系統(Input System)與持續檢測鍵盤按鍵(Input.GetKey)

目錄 Unity 的兩套輸入系統: 🔍 Input.GetKey 詳解 🎯 對比:常用的輸入檢測方法 技術底層原理(簡化版) 示例:角色移動 為什么會被“新輸入系統”替代? Unity 的兩套輸入系統&…

港大今年開源了哪些SLAM算法?

過去的5個月,香港大學 MaRS 實驗室陸續開源了四套面向無人機的在線 SLAM 框架:**FAST-LIVO2 、Point-LIO(grid-map 分支) 、Voxel-SLAM 、Swarm-LIO2 **。這四套框架覆蓋了單機三傳感器融合、高帶寬高速機動、長時間多級地圖優化以…

【質量管理】TRIZ因果鏈分析:解碼質量問題的“多米諾效應“

為什么要使用因果鏈分析 沒有發現問題并不等于沒有問題。愛因斯坦曾說,如果我只有一個小時的時間來拯救世界,我將花45分鐘時間分析問題,10分鐘的時間來檢查問題,最后5分鐘的時間來解決問題。可見問題分析的重要性。 在質量管理實踐…

線程中常用的方法

知識點詳細說明 Java線程的核心方法集中在Thread類和Object類中,以下是新增整合后的常用方法分類解析: 1. 線程生命周期控制 方法作用注意事項start()啟動新線程,JVM調用run()方法多次調用會拋出IllegalThreadStateException(線程狀態不可逆)。run()線程的任務邏輯直接調…

c++:迭代器(Iterator)

目錄 🚪什么是迭代器? 🔧 迭代器的本質 為什么不用普通數組或下標? STL容器的迭代器并不是共用一個類型! 迭代器的類型(Iterator Categories) 📦 常見容器的迭代器類型 ? 迭…

【文件系統—散列結構文件】

文章目錄 一、實驗目的實驗內容設計思路 三、實驗代碼實現四、總結 一、實驗目的 理解linux文件系統的內部技術,掌握linux與文件有關的系統調用命令,并在此基礎上建立面向隨機檢索的散列結構文件;## 二、實驗內容與設計思想 實驗內容 1.設…

力扣26——刪除有序數組中的重復項

目錄 1.題目描述: 2.算法分析: 3.代碼展示: 1.題目描述: 給你一個 非嚴格遞增排列 的數組 nums ,請你 原地 刪除重復出現的元素,使每個元素 只出現一次 ,返回刪除后數組的新長度。元素的 相對…

ggplot2 | GO barplot with gene list

1. 效果圖 2. 代碼 數據是GO的輸出結果,本文使用的是 metascape 輸出的excel挑選的若干行。 # 1. 讀取數據 datread.csv("E:\\research\\scPolyA-seq2\\GO-APA-Timepoint\\test.csv", sep"\t") head(dat)# 2. 選擇所需要的列 dat.usedat[, c(…

學習搭子,秘塔AI搜索

什么是秘塔AI搜索 《秘塔AI搜索》的網址:https://metaso.cn/ 功能:AI搜索和知識學習,其中學習部分是亮點,也是主要推薦理由。對應的入口:https://metaso.cn/study 推薦理由 界面細節做工精良《今天學點啥》板塊的知…

【C語言】--指針超詳解(三)

目錄 一.數組名的理解 二.使用指針訪問數組 三.一維數組傳參的本質 四.冒泡排序 五.二級指針 六.指針數組 6.1--指針數組的定義 6.2--指針數組模擬二維數組 🔥個人主頁:草莓熊Lotso的個人主頁 🎬作者簡介:C方向學習者 &…

Linux防火墻

1.防火墻是一種位于內部網絡與外部網絡之間的網絡安全系統,它依照特定的規則,允許或限制傳輸的數據通過,以保護內部網絡的安全。以下從功能、分類、工作原理等方面為你詳細講解: 功能訪問控制:這是防火墻最主要的功能。…

嵌入式培訓之C語言學習完(十七)結構體、共用體、枚舉、typedef關鍵字與位運算

目錄 一、結構體(struct關鍵字) (一)聲明一個結構體數據類型 (二)結構體的成員初始化與賦值 a、結構體變量賦值 b、結構體成員初始化 c、結構體的定義形式 (三)考點&#xff…

Python字典:數據操作的核心容器

在Python編程生態中,字典(dict)是最常用且功能強大的內置數據結構之一。它以鍵值對(Key-Value Pair)的形式存儲數據,為快速查找、靈活映射關系提供了天然支持。無論是數據清洗、算法實現還是Web開發&#x…

按位寬提取十六進制值

需求:給出一個十六進制值,要求提取high和low位之間的值。比如16ha0f0,這是一個16bit寬的十六進制數0xa0f0,提取[15:12]范圍內的值。 def extract_bits(value, high, low):"""從 value 中提取 [high:low] 位的值:p…