华为银河麒麟 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.mzph.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…