数据库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. Python随机选择Maya场景元素

    之前在公司参与的一个与国外合作的项目中,有一景需要动态.随机地选取场景中的一些物体,同时显示指定材质,当时是用Houdini的节点+Hscript 解决的: 今天用简洁优雅的Python在Maya中写 ...

  2. 「6月雅礼集训 2017 Day11」delight

    [题目大意] 有$n$天,每天能吃饭.睡觉.什么事也不干 每天吃饭的愉悦值为$e_i$,睡觉的愉悦值为$s_i$,什么都不干愉悦值为0. 要求每连续$k$天都要有至少$E$天吃饭,$S$天睡觉. 求最 ...

  3. 如何彻底关闭退出vmware虚拟机

    如何彻底关闭退出vmware虚拟机 每次使用虚拟机之后退出时,它都会在系统托盘区留下一个虚拟机图标,该如何彻底关闭退出vmware虚拟机呢? 首先我们需要运行一下虚拟机程序 1:我们如果要对虚拟机进行 ...

  4. jq_从右向右的滑入滑出效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. LCD实验学习笔记(六):存储控制器

    s3c2440可使用地址空间为1GB(0x00000000到0x40000000). 1G空间分为8个BANK,每个BANK为128MB. 设27条地址线,和8个片选引脚(nGCS0-nGCS7). ...

  6. static class 和 non static class 的区别

    static class non static class 1.用static修饰的是内部类,此时这个 内部类变为静态内部类:对测试有用: 2.内部静态类不需要有指向外部类的引用: 3.静态类只能访问 ...

  7. 写个dump_stack【转】

    转自:http://blog.chinaunix.net/uid-27714502-id-3434761.html 简单实现dump_stack 0.首先确保你能写个内核模块:打印"hell ...

  8. v4l2驱动编写篇【转】

    转自:http://blog.csdn.net/michaelcao1980/article/details/53008418 大部分所需的信息都在这里.作为一个驱动作者,当挖掘头文件的时候,你可能也 ...

  9. oracle to_char 返回毫秒级

    select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1, 关键在 systimestamp

  10. HDU 5118 GRE Words Once More!

    题目链接:HDU-5118 题意:给定一个有向无环图,每条边有一个权值.标定一些特定节点为“特殊节点”.从节点1出发到某“特殊节点”结束的路径,称为一个“GRE单词”.单词由路径上的权值组成.给定一组 ...