什么是高可用?如何利用 Nginx+Keepalived 实现高可用技术?

本文详细介绍了高可用的概念、衡量标准、目的以及实现手段,重点讲解了如何通过Nginx+Keepalived配置高可用的主备模式,包括准备、配置步骤以及模拟故障验证,旨在确保服务在硬件故障时仍能正常提供,提高系统稳定性。
摘要由CSDN通过智能技术生成

一、什么是高可用?

高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,通常是指:通过设计从而减少系统不能提供服务的时间。

二、怎么来衡量高可用?

举个例子,比如说一个系统它一直能够为你提供服务,那它的系统可用性就是100%,当系统运行到100个时间单位时,可能会有1-2个时间单位无法为你提供服务,那它的系统可用性就是99%和98%,在一年的时间内保证99%可用性的系统最多可以有3.65天的停机时间(1%)。这些值根据几个因素计算的,包括计划和非计划维护周期,以及从可能的系统故障中恢复的时间。

目前大部分企业的高可用目标是4个9,也就是99.99%,有几个 9,就代表了你的可用性。

  • 2个9:基本可用,网站年度不可用时间小于 88 小时;
  • 3个9:较高可用,网站年度不可用时间小于 9 小时;
  • 4个9:具有自动恢复能力的高可用,网站年度不可用时间小于 53 分钟;
  • 5个9:极高可用,也就是很理想的状态,网站年度不可用时间小于 5 分钟;

可用性的9怎么计算出来的呢?

  • 网站不可用时间 = 故障修复时间点 - 故障发现时间点
  • 网站年度可用性指标 =(1 - 网站不可用时间/年度总时间)* 100%

可用性的考核:网站可用性,跟技术、运营、等各方面的绩效考核相关,因此在前期的架构设计中,关于系统高可用性的问题也会话很大一部分时间,互联网企业不同公司有着不同的策略,往往因为种种因素会直接影响到系统的高可用性,业务增长较快的网站同时也将面临着用户的增长率,同时也慢慢会降低高可用性的标准,因此也就会对网站做一些相关性的策略或后端设备的支持等;

一般都是采用故障来分的,也是对网站故障进行分类加权计算故障责任的方法。一般会给每个分类的故障设置一个权重(例如事故级故障权重为100,A类为20等),计算公式为:故障分=故障时间(分钟)* 故障权重。

三、高可用网站架构设计目的是什么?

当服务器的集群设备频繁读写时,会导致硬件出现故障的现象。

其高可用架构设计的目的:保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。

四、实现高可用的主要手段有哪些?

  • 数据层面:冗余备份

一旦某个服务器宕机,就将服务切换到其他可用的服务器上;

冗余备份分为:冷备份和热备份

冷备份是定期复制,不能保证数据可用性。

热备份又分为异步热备和同步热备,异步热备是指:多份数据副本的写入操作异步完成,同步热备是指:多份数据副本的写入操作同时完成。

  • 服务层面:失效转移

如某块磁盘损坏,将从备份的磁盘读取数据。(首先是已经提前做好了数据同步操作);

若数据服务器集群中任何一台服务器宕机时,那么应用程序针对这台服务器的所有读写操作都要重新路由到其他服务器,保证数据访问不会失败。

五、高可用的应用

应用层处理网站应用的业务逻辑,最显著的特点是:应用的无状态性。

无状态性的应用是:指应用服务器不保存业务的上下文信息,仅根据每次请求提交的数据进行相应的业务逻辑处理,且多个服务实例(服务器)之间完全对等,请求提交到任意服务器,处理结果都是完全一样的。

1)通过负载均衡进行无状态服务的失效转移

不保存状态的应用是给高可用架构带来了巨大便利,服务器不保存请求的状态,所有的服务器完全对等;

当任意一台或多台服务器出现宕机时,请求提交给集群中的其他任意一台可用服务器进行处理,对客户端用户来讲,请求总是成功的,整个系统依然可用。

对于应用服务器集群,实现这种服务器可用状态实时检测、自动转移失败任务的机制就是负载均衡。主要是在业务量和数据量使用频率较高时,单台服务器不足以承担所有的负载压力,那么可以通过负载均衡这种手段,将流量和数据平均到集群中其他服务器上,提高整体的负载处理能力。

不管在今后的工作中,是使用开源免费的负载均衡软件还是硬件设备,都需具备失效转移功能,网站应用中,集群中的服务器是无状态对等时,负载均衡即可起到事实上高可用的作用。

当 Web 服务器集群中的服务器都可用时,负载均衡服务器会把客户端发送到的访问请求分发到任意一台服务器上来进行处理,这时当服务器2出现宕机时,负载均衡服务器通过心跳检测机制发现该服务器失去响应,就会把它从服务器列表中删除,而将请求发送到 Web 服务器集群中的其他服务器上,这些服务器完全一样,请求在任何一台服务器中处理都不会影响到最终结果。

在实际环境中,负载均衡在应用层起到了系统高可用的作用,即便当某个应用访问量较少时,只用一台服务器足以支撑并提供服务,一旦需要保证该服务高可用时,必须至少部署两台服务器,从而使用负载均衡技术搭建一个小型的 Web 服务器集群。

2)应用服务器集群的Session管理

Web 应用中将多次请求修改使用的上下文对象称为会话(Session),单机情况下,Session 可部署在服务器上得 Web 容器(如 IIS、Tomcat 等)管理。

在使用了负载均衡的集群环境中,负载

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值