数据库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. CentOS6.8 安装rar解压缩

    wget http://www.rarsoft.com/rar/rarlinux-x64-5.4.0.tar.gz tar -zxvf rarlinux-x64-5.4.0.tar.gz cd rar ...

  2. mysql 并发下数据不一致的问题分析及解决

    MySQL 5.6 , InnoDB存储引擎,默认事务隔离级别(REPEATABLE-READ) 初始sql 脚本如下: CREATE DEFINER=`root`@`localhost` PROCE ...

  3. input placeholder 兼容问题

    placeholder是html5出的新特性,ie9以下是不兼容的, 那么为了兼容ie9  我们需要对他做处理 //jq的处理方式$(function(){ jQuery('[placeholder] ...

  4. js_页面关闭beforeunload事件

    做圆桌爆文公众号的时候,需要对阅读的文章进行时间统计.是这个公众号的核心功能,客户把文章转发到朋友圈或者转给朋友,记录谁阅读此文章和阅读时长进行记录,从而展示给客户. 功能点是,关闭页面时触发事件,请 ...

  5. python中的argparse模块

    argparse干什么用的? 答:参数设置,比如python demo.py -h 诸如此类的. 开始学习这个模块: parser = argparse.ArgumentParser() #使用这个模 ...

  6. python自动开发之第二十二天

    知识点概要 - Session - CSRF - Model操作 - Form验证(ModelForm) - 中间件 - 缓存 - 信号 一. Session 基于Cookie做用户验证时:敏感信息不 ...

  7. go语言爬虫goquery和grequests的使用

    /*下载工具*/ package main import ( "fmt" //go语言版本的jquery "github.com/PuerkitoBio/goquery& ...

  8. oc 与 swift 之间的桥接文件 (ProjectNmae-Bridging-Header.h) (ProjectNmae-Swift.h)

    oc 与 Swift 是2种不同的语言, oc代码只能写带oc文件里, Swift代码只能写在Swift文件里, 虽然2者不同语言, 但却能互相调用, 不过需要进行一下桥接, 就是下面的2个文件 (P ...

  9. C基础 万能动态数组

    引言 - 动态数组切入 开发中动态类型无外乎list 或者 vector, 这里就是在C中实现vector结构容器部分. 对于C中使用的数据结构, 可以参照下面感觉很不错框架源码学习 , 感觉是< ...

  10. 亚马逊EC2根硬盘空间扩容

    买的系统盘为32G,结果发现只使用了8G,剩下的都未分配 lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda : 32G disk └─xvda1 : ...