关于 “高可用集群” 的 从业经验漫谈

news2024/11/19 23:38:53

关于高可用集群

PART 1 高可用的概念

    高可用(High Availability)是高可用集群(High Availability Cluster)的简称,至少由2台服务器组成,一般指的是应用服务对客户端的持续可用。高可用集群可以借助多种技术手段实现,构建服务器集群是实现高可用集群的流行做法。

    借助 LVS、Nginx、HAProxy等负载均衡软件可以实现集群中的故障检修与业务切换自动化。从实践技术上讲,服务器集群的负载均衡策略对实现集群中应用服务的持续可用起着核心性质的控制作用。

PART 2 应用服务高可用的衡量标准

    一般通过应用服务系统的可靠性(Reliability)和可维护性(Maintainability)来衡量当前应用服务系统的高可用程度。可靠性一般用应用服务系统平均无故障时间进行度量;可维护性一般用应用服务系统平均维护时间进行度量。一个应用服务系统在某个时间段内的高可用程度即为应用服务系统平均无故障时间与应用服务系统存续时间的比值。指标化的表示公式为:

高可用程度=平均无故障时间/(平均无故障时间+平均维护时间)

PART 3 高可用集群的逻辑架构

PART 4不同业务分类场景下高可用集群实现方案

甲 存储方向的高可用集群实现

    核心思想:数据副本冗余与数据副本被就近访问。

甲 一 借助网路把数据复制传送到多台存储设备上,实现存储数据的高可用

    通过Rsync、scp、ftp、sftp等工具对存储的数据进行复制传输,常见于多个小型、异地数据中心之间进行数据备份与灾难恢复。

甲 二 使用直接附加存储(DAS)设备在多个硬件设备上,实现存储数据的高可用

    面对小型简单存储需求可使用磁盘 RAID 0+1 方案,对RAID阵列进行模式0和模式1的组合操作实现;面对大型复杂环境的数据存储需求则可以使用NAS(网络附加存储)方案,NFS是一种典型的NAS实现方式;在超大型核心数据中心数据存储许晴的场景下,则建议使用iSCSI-SAN(iSCSI-存储区域网络)方案,常见的实现方式是 FC-SAN和 IP-SAN。

甲 三 借助分布式结构的实现存储数据的高可用

    在云计算、大数据场景下,可以借助SDN方案实现数据的冗余存储与快速读取。当前受众比较广泛、实践中使用较多的分布式SDN实现产品主要是 Gluster FS 、MinIO FS、HDFS、Oracle开源的ocfs2 FS、 Ceph FS、Linux-Kernel级别的Distributed ReplicatedBlock Device(DRBD)。当前,基于 RedHat 系列产品构建的业务平台使用Gluster FS 较多、整合开源产品构建的业务平台使用 Ceph FS 较多。

乙 故障转移方向的高可用集群实现

    核心思想:快速识别业务服务器状态、快速启用备用业务服务器,让终端用户对应用服务状态变化无感知。

乙 一 借助硬件热插拔技术快速切换故障

    一般在IAAS平台中,物理服务器发生了部分硬件故障(比如NIC),可以借助硬件厂商提供的热插拔技术快速修复故障。同样,在基于 KVM-QUME 模拟的硬件发生故障后也可以借助虚拟化热插拔技术快速更换指定的虚拟部件。

乙 二 借助虚拟IP快速切换故障

    通过将提供服务的主机和 Virtual IP 进行绑定,可以在终端用户毫无知觉的状态下下更换提供目标应用服务的主机。

丙 负载均衡(Load Balance)方向的高可用集群实现

    核心思想:各应用服务节点合理担负负载压力,提供服务冗余。

丙 一 局域网内的负载均衡高可用实现

    借助负载均衡套件实现,有两个实现方向:服务端代理调度和客户端正向调度。客户端正向调度又分为两种情况:一是客户端统一调度、二是客户端负载调度。客户端统一调度的常见场景是将某一类请求(比如来自手机APP的请求和来自浏览器的WEB请求)统一调度到某一个或某几个目标服务器上进行业务处理。客户端负载调度一般是基于客户端的的链接监测程序获取目标后端的全部应用服务器的负载状况、并由客户端自主选择合适的目标服务器进行业务处理。

    服务端代理调度是应用服务提供方重点关注的实现方向。对于应用服务提供方而言,实现负载均衡调度的最佳选择就是提供可伸缩的虚拟服务,让虚拟服务时刻保持客户端可访问。此方案的开源实现套件主要有LVS(Linux Virtual Server)、HAProxy、Nginx-upstream、Keepalived、Squid cache、Google 开源的Seesaw和Maglev、Heartbeat 3、Kubernetes提供的kube-proxy、大众点评为F 5开源的Camel、UCloud的Vortex等。此外还有系统集成厂商提供的针对特定业务场景的商业负载均衡高可用套件,如 F5 BIG-IP 、Citrix NetScaler、RedHat Cluster Suite、中兴Newstart HA、Novell Cluster Service、Steeleye Lifekeeper for Linux、深信服AD的CDN负载均衡、各公有云厂商提供的Elastic Load Balance等。

    负载均衡调度策略大体上可分为静态调度侧率与动态调度策略两类,开源套件中常见的负载均衡调度策略有:轮询、随机、最小链接、最小负载、最短响应时间、权重、活跃粘度、HASH、FAIR、IP、TCP/UDP流量等。

    在使用负载调度策略时应考虑C/S交互中的会话一致性,保证同一个长链接会话粘滞到同一个应用服务器上,因此需要结合应用服务器的健康检查实现会话流出的负载下线业务场景,典型的场景是应用服务器节点的计划性维护下线。

丙 二 跨地域的负载均衡高可用实现

    和DNS(Domain Name System)解析分布式数据结合实现。DNS服务默认的轮询策略会把一个域名轮流解析到一组IP上、从而实现业务负载分摊。

丙 三 基于硬件的负载均衡高可用实现

    主要代表是 F5 、A 10、中兴等系统集成厂商提供的硬件负载均衡设备。硬件厂商的设备一般能提供强劲的服务,稳定性较高,性能较好,能支持百万级别的并发量,但价格十分昂贵,一般在一个数据中心最多使用两个此类硬件设备,以主备的形式构建高可用。

丁 分布式结构方向的高可用集群实现

    核心思想:解耦组件间的强依赖关系,利用消息堆栈联通组件进程工作流。

丁 一 拆分业务系统组件进行模块化分离部署

    把业务系统的部件进行拆分组模后分离部署,这糅杂了微服务业务系统架构和分布式系统思想,需要对当前业务系统的单体应用进行拆分和模块化打包,运维架构的工作量相当大。但在业务快速增长的场景下或者敏捷开发与发布的场景下,这是个最优选择方向,结合蓝绿发布策略,既可以保证应用服务的高可用、又可以实现软件代码版本迭代的实时更新。

    这种业务系统改造和运维系统架构完全是定制化的,实施成功与否严重依赖运维架构团队自身的知识深度和广度积累、及其对目标业务系统运转流程的熟悉程度,几乎没有可以直接克隆使用的案例。

丁 二 对业务系统组件进行抽取并改造构建公共服务

    对业务系统抽取服务组件并构建为公共服务中间件,借鉴了“中台”思想。一般一个复杂的应用服务系统会涉及多种通用服务(比如数据存储,典型的是数据库服务),可能每个组件对这一类服务的要求略有差异(比如消息队列存储和集群配置信息存储的差异),此时可以考虑抽象出一个数据公共服务层,借助分布式共享存储和容器技术构建数据服务及数据共享存储。

    对此,我本人在实验环境下搭建过一个学生信息全息平台,通过数据可视化面板可以展示出和一个学号关联的全部校务信息,在数据存储方面我就抽象了一个数据公共服务,它由一个MinIO数据池和一个Kubernetes集群上运行的MySQL、Redis、ElasticSearch和DataEasy容器吊舱组成。MinIO数据池存储着全部的结构化与非结构化数据,MySQL、Redis、ElasticSearch引擎负责接收客户端数据请求和存储池中的数据存储,DataEasy负责通过 Web UI界面展示可视化报表。

    唯一的缺憾是,这个实验室产物没有进行大量数据验证,但它证明了“构建公共服务层”联通业务流转的上下游这个思路是可行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SuperMap:开启地理信息的无限可能

文章目录 引言简介SuperMapSuperMap的背景和发展SuperMap的功能特点 SuperMap的应用案例城市规划与管理天气预报与灾害管理物流与运输管理地理信息服务 最佳实践与技巧数据准备与处理地图制作与展示空间分析与决策 展望未来结论 引言 随着现代社会的发展,地理信息系…

CentOS Integration SIG 正式成立

导读CentOS 董事会已批准成立 CentOS Integration Special Interest Group (SIG)。该小组旨在帮助那些在 Red Hat Enterprise Linux (RHEL) 或特别是其上游 CentOS Stream 上构建产品和服务的人员,验证其能否在未来版本中继续运行。 红帽 RHEL CI 工程师 Aleksandr…

性能测试?

目录 一、什么是性能测试 二、系统性能指标 2.1 响应时间 2.2 系统处理能力 2.3 吞吐量 2.4 并发用户数 2.5 错误率 三、资源性能指标 3.1 CPU 3.2 内存 3.3 磁盘吞吐量 3.4 网络吞吐量 四、中间件指标 五、数据库指标 六、稳定性指标 一、什么是性能测试 先看…

PageRank(下):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

为何说医疗器械售后前景呈持续发展趋势?

为何说医疗器械售后前景呈持续发展趋势?如果医院的设备突然不运转了无法工作了,医院如果不及时维修,一天下来不仅患者有生命危险,医院的经济损失也不可估量,但是你知道这些医院的这些设备是怎么维修的吗?医…

淘宝商品数据分析接口,淘宝商品详情数据接口

淘宝商品数据分析接口可以通过淘宝API进行获取。 淘宝API是一种程序接口,通过编程的方式,让开发者能够通过HTTP协议直接访问淘宝平台的数据,包括商品信息、店铺信息、物流信息等,从而实现淘宝平台的数据开放。 通过淘宝API提供的…

钡铼BL302与PLC:酿酒业变革的助力

啤酒是人类非常古老的酒精饮料,是水和茶之后世界上消耗量排名第三的饮料。 啤酒在生产过程中主要有制造麦芽、粉碎原料、糖化、发酵、贮酒後熟、过滤、灌装包装等工序流程。需要用到风选机、筛分机、糖化锅、发酵设备、过滤机、灌装机、包装机等食品机械设备。这些食…

假期后寻找好用的电商API接口系列——淘宝API(京东1688拼多多等电商平台)

当闹钟响起,我们不得不从美好的梦境中回到现实,开始新的一天。尽管心中还留有假期的余味,我们依然要面对工作、学习和生活的压力。 电商平台API接口是指电商平台提供的一系列应用程序接口,用于允许开发者或商家与电商平台进行数据…

c++ qt--线程(二)(第九部分)

c qt–线程(二)(第九部分) 一.线程并发 1.并发问题: ​ 多个线程同时操作同一个资源(内存空间、文件句柄、网络句柄),可能会导致结果不一致的问题。发生的前提条件一定是多线程下…

实现动态表单的一种思路 | 京东云技术团队

一、动态表单是什么 区别于传统表单前后端配合联调的开发实现方式,动态表单通过一种基于元数据管理的配置化方法来实现表单的动态生成,并能根据配置自由增改删指定字段。实现特定需求的自助化。 图1.1 传统表单前后台协作模式 图1.2 动态表单前后台协作…

Linux 逻辑卷

目录 一、认识 1、概念 2、术语: 1)物理存储设备 2)物理卷 3)卷组 4)PE物理区域 5)逻辑卷 6)LE逻辑区域 7)VGDA卷组描述符区域 二、部署逻辑卷 1、物理卷管理 2、卷组…

搭建Windows上的Qt桌面开发环境

搭建Windows上的Qt桌面开发环境 准备有效邮箱安装VS2019 CommunityMicrosoft个人账号注册地址下载在线安装器安装C工具链 安装QtQt开发者账号注册地址下载在线安装器安装Qt 5.15工具链和Qt Creator 使用Qt Creator编译示例工程配置构建套件(Kit)打开示例…

特殊笔记_10/7

安装node到第4.1就行(安装npm的淘宝镜像) Node.js安装与配置(详细步骤)_nodejs安装及环境配置_LI4836的博客-CSDN博客 安装vscode 下载组件: 点击第五个 Auto Close Tag:自动闭合标签 Chinese (Simpli…

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题 + 配置镜像队列——实操型

RabbitMQ集群搭建详细介绍以及解决搭建过程中的各种问题 配置镜像队列——实操型 1. 准备工作1.1 安装RabbitMQ1.2 简单部署搭建设计1.3 参考官网 2. RabbitMQ 形成集群的方法3. 搭建RabbitMQ集群3.1 部署架构3.2 rabbitmq集群基础知识3.2.1 关于节点名称(标识符&a…

2023年中国资产数字化监控运维管理系统行业分析:产品应用领域不断拓展[图]

资产监控运维管理是一门紧密结合生产实际的工程科学,是实现资产有效运营维护的重要手段。资产监控运维管理技术起源于美国和欧洲等国家和地区,经过几十年的理论研究和实际应用,资产监控运维管理技术为提高重大设备资产和系统的可靠性和安全性…

javaee ssm框架项目整合thymeleaf2.0 更多thymeleaf标签用法 项目结构图

创建ssmthymeleaf项目 创建ssmthymeleaf项目参考此文 thymeleaf更多常用标签 <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><title>Title</title> …

练[WUSTCTF2020]朴实无华

[WUSTCTF2020]朴实无华 文章目录 [WUSTCTF2020]朴实无华掌握知识解题思路代码分析 关键paylaod 掌握知识 ​ 目录扫描&#xff0c;抓包放包&#xff0c;代码审计&#xff0c;php函数特性的了解&#xff1a;intval函数&#xff0c;md5特性绕过&#xff0c;RCE一些bypass方法 解…

新代仿真软件的使用方法

1、安装 必须解压到C盘根目录下面 2、按键功能说明 3、新代仿真密码 密码&#xff1a;520 4、繁体改简体 3209号参数&#xff1a;值改成119&#xff0c;重启后即可正常识别中文。 5、修改坐标 先进入【程序编辑】-【图形仿真】-按【F10】键-【仿真参数设定】 把绘图模式改…

泛微OA e-office平台uploadify.php任意文件上传漏洞

泛微OA e-office平台uploadify.php任意文件上传漏洞复现 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的…