数据库HA

 

一般把数据库层面的HA,和应用层面HA分开考虑

数据库一般采用数据库产品提供的HA方案,比如Oracle的RAC,mysql的集群,mongodb的replica set等

无HA的运维

 

在应用层面不做HA,我们产品有试过,后果十分惨重。无论是应用down了,还是硬件故障,都会造成业务中断。而且这时候想定位问题就十分纠结,因为保留现场去定位问题比较理想,但是业务一直不恢复客户又有意见,所以不做HA在生产环境是强烈不推荐的

如果真的没有HA,那运维也就是人工观察,发现业务中断了,就赶快把应用再启起来。好一点的话,可以做一点自动拉起引用的脚本,实现自动化。但是因为硬件始终只有一台,所以有时候没有办法启起来,只能临时迁移,业务中断时间会很长。而且只有一套环境,会发生应用一起来马上又down掉

冷备

 

基本上就是准备两套硬件,一套跑业务,另一套备用。第一套坏了,就把备用的那套启起来。这样基本可以抗硬件故障,因为2套硬件同时坏的几率比较低。也可以把2套硬件放在不同的网段,这样还可以抗网络故障

不过也有几个问题:

1、成本高,硬件成本,以及相应的机柜场租、电费也跟着上去了

2、第二套启动需要时间,所以业务还是会中断一会,如果是对可用性要求很严格的服务,冷备的方案基本无法满足

一般会搭配一些HA管理软件,业界比较有名的是VERITAS,可以自动改IP,自动启应用等,不过也比较贵

N:1备份

 

也是冷备的一种,不过比硬件double的方案能省一些成本。前提是应用是分布式的,那么可以只准备一台额外的机器,把所有分布式组件都部署上,然后哪个组件坏了就启哪个。如果同时2个组件坏了,那就没办法了。启动过程中的业务中断也是无法避免的。总的来说,可靠性不如完全的冷备方案,不过能省点成本

热备负载均衡

 

这种方案是可用性最高的方案,同时启动2套应用,在上层加一个负载均衡。如果一套坏了,就把请求发到好的那一台,再尝试恢复坏的那一套。业务是不中断的,但是只剩一套应用的那段时间,压力会突然大很多

前提是应用需要是无状态的,否则坏了那台机的请求,也没法转发到别的机器上。基本上应用只要满足这个条件,都会选择热备,选择冷备一般是无奈的选择(无状态改造短期做不到),因为消耗的硬件是一样的,热备的效果明显要更好HA

(转) HA的几种方案的更多相关文章

  1. 防止服务器宕机时MySQL数据丢失的几种方案

    这篇文章主要介绍了防止服务器宕机时MySQL数据丢失的几种方案,结合实践介绍了Replication和Monitor以及Failover这三个项目的应用,需要的朋友可以参考下. 对于多数应用来说,My ...

  2. 组建MySQL集群的几种方案

    组建MySQL集群的几种方案LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个)DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂 ...

  3. 【Win 10 应用开发】文件读写的三种方案

    本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧——事无定法,灵活运用者为上. OK,咱们开始吧 ...

  4. 集合框架,ArrayList和Vector的区别,让arrayList线程安全的几种方案

    boolean add(E e) 将指定的元素添加到此列表的尾部. void add(int index, E element) 将指定的元素插入此列表中的指定位置. boolean addAll(C ...

  5. javascript 网络是否连接的几种方案

    js   网络是否连接的几种方案 1.通过html5的新属性: window.onload = function () {            var isOnLine = navigator.on ...

  6. javascript把IP地址转为数值几种方案,来挑战一下效率吧

    先看看什么是IP地址: IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节).IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~25 ...

  7. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  8. 浅谈实现placeholder效果的几种方案

    placeholder是html5<input>的一个属性,它提供可描述输入字段预期值的提示信息(hint), 该提示会在输入字段为空时显示.高端浏览器支持此属性(ie10/11在获得焦点 ...

  9. GPRS组网的几种方案【来自网络】

    GPRS组网的几种方案:1) 方案一:中心采用ADSL等INTELNET公网连接,采用公网固定IP或者公网动态IP+DNS解析服务.此种方案向先INTERNET运营商申请ADSL等宽带业务.     ...

随机推荐

  1. 鸡尾酒排序Cocktail sort

    鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 3 4 5 1] 第二步迭代,3 < 4不换 [ ...

  2. Super A^B mod C (快速幂+欧拉函数+欧拉定理)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=1759 题目:Problem Description Given A,B,C, You should quick ...

  3. ASP.NET AjaxControlToolkit-Framework4.0 配置实用(简单介绍CalendarExtender日期控件)

    1:下载:AjaxControlToolkit Ajax Control Toolkit .NET 4 Ajax Control Toolkit .NET 4.5 Ajax Control Toolk ...

  4. 如何免费上传4G以上大文件至百度云网盘

    百度云网盘的容量高达2048G,因而如今使用百度云网盘的用户也越来越多, 但是百度云中如果要上传超过4G的大文件,必须要升级VIP才行,但这需要收费.那么,超过4G以上的大文件我们该怎样上传到百度云呢 ...

  5. C#编写程序监测某个文件夹内是否有文件进行了增,删,改的动作?

    新建一个Console应用程序,项目名称为“FileSystemWatcher”,Copy代码进,编译后就可以用了.代码如下: using System; using System.Collectio ...

  6. eclipse+EGIT+GitHub

    下载EGIT:http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 1.下载eclipse版本对应的E ...

  7. 安装Vue.js devtools

    1.下载安装 https://github.com/vuejs/vue-devtools#vue-devtools 通过以上地址下载安装包,解压以后进入文件,按住shift,点击鼠标右键打开命令窗口 ...

  8. 移动测试===利用adb命令查看apk文件包名的一些方法

    前提是已经下载android SDK并配好环境变量! 在控制台输入命令$adb shell pm 可以看到adb shell pm的相关用法,详细信息请自己看输出 要看一个apk文件的相关信息最简单实 ...

  9. OpenRCT2

    https://github.com/OpenRCT2/OpenRCT2 https://github.com/LRFLEW/HRM-CCPU https://github.com/LRFLEW/Op ...

  10. VPS速度测试(4):上传下载速度、服务器带宽、Ping响应时间

    1.VPS的速度好坏经常是我们选择某一个VPS商家的重要参考指标,对于国外的VPS主机我们可以执行以下命令来测试VPS入口带宽是多少. wget https://cachefly.cachefly.n ...