高可用

keepalived实现服务高可用

China☆狼群 提交于 2019-12-26 15:27:33
第1章 keepalived服务说明 1.1 keepalived是什么?   Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。   Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。   所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。 keepalived官网http://www.keepalived.org 1.2 keepalived服务的三个重要功能  管理LVS负载均衡软件  实现LVS集群节点的健康检查中  作为系统网络服务的高可用性(failover) 1.3 Keepalived高可用故障切换转移原理   Keepalived高可用服务对之间的故障切换转移,是通过 VRRP (Virtual

高性能、高可用平台架构演变史

若如初见. 提交于 2019-12-25 22:24:55
开篇概述 在如今移动互联网、互联网+、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。 对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳定性是否良好?估计是对所有互联网平台来说两大头等要素吧,的确,移动互联网时代,流量就是市场价值,说白了就是收益,就是RMB,失去了流量,那么你也就失去了赚取收益的机会与机遇。 因此,对于互联平台或网站来说,网站的高可用、不间断服务也是平台运营过程中的一个重大决定因素,比如说某平台,三天两头的故障,打不开,又或者说,经常性的出现错误、访问超时等等问题,那么用户的流失机率就会随之增加。 那么今天我们就来聊一聊各类高可用架构的一个演变过程到底是如何的?此文民工哥用时三小时总结写作完成,希望对大家有所帮助,欢迎大家拍砖、留言、点赞、转发分享以支持。 什么是高可用? “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。简而言之,就是不间断对外提供服务。 架构之初 架构图 架构简述 这类架构比较适用于初创企业或流量较小的平台。 此种架构一般都是在平台运行之初所用到的架构,日均PV不大,简单的架构足以能够应对用户的流量请求,比如前端网站使用Apache/nginx都可以,APP服务器直接使用JAVA环境如tomcat应用

存储系统高可用架构

时间秒杀一切 提交于 2019-12-25 22:24:43
1 存储系统高可用架构 1.1 系统整体架构 2 主要部件相关机制 2.1 pacemaker + cman + corosync 这部分主要工作有以下方面: (1) 关于高可用架构的选型 2.1.1 IBA 网络 IBA 虚拟化 2.1.2 Lustre 文件系统 双控盘阵支撑 盘整 MMP 参数调整 lustre服务脚本改造 Lustre resource 脚本 2.1.3 虚拟机及内lwfsd 管理 Lwfsd resource 脚本 虚拟机服务加入到 pacemaker 2.1.4 高可用图形界面展示 2.2 高可用容错主要场景 3 软件栈配置过程 软件安装 [all] pacemaker-libs-1.1.12-4.el6.x86_64 pacemaker-1.1.12-4.el6.x86_64 pacemaker-cts-1.1.12-4.el6.x86_64 pacemaker-libs-devel-1.1.12-4.el6.x86_64 pacemaker-cluster-libs-1.1.12-4.el6.x86_64 pacemaker-remote-1.1.12-4.el6.x86_64 pacemaker-cli-1.1.12-4.el6.x86_64 pacemaker-doc-1.1.12-4.el6.x86_64 pcs-0.9.123-9.0.1

Redis高可用架构

落爺英雄遲暮 提交于 2019-12-25 22:24:23
前言 Redis 是一个高性能的 key-value 数据库,现时越来越多企业与应用使用 Redis 作为缓存服务器。楼主是一枚 JAVA 后端程序员,也算是半个运维工程师了。在 Linux 服务器上搭建 Redis ,怎么可以不会呢?下面楼主就带着大家从0开始,依次搭建: Redis 单机服务器 -> Redis 主从复制 -> Redis-Sentinel高可用 。逐步搭建出高可用的Redis缓存服务器。 搭建Redis 1. 下载并解压 首先从 Redis 官网下载 Redis 并解压,楼主使用的版本是4.0.2。依次执行如下命令: cd /opt wget http://download.redis.io/releases/redis-4.0.2.tar.gz tar -zcvf redis-4.0.2.tar.gz 如果没有安装 gcc 依赖包,则安装对应依赖包 yum install -y gcc-c++ tcl 2. 编译并安装 下载并解压完毕后,则对源码包进行编译安装,楼主的 Redis 安装路径为 /usr/local/redis ,同学们可以自行修改语句: make install PREFIX=你想要安装的路径 cd /opt/redis-4.0.2 make install PREFIX=/usr/local 复制 Redis 相关命令到 /usr/sbin

高可用系统架构

拟墨画扇 提交于 2019-12-25 22:23:50
1.当我们新开发一个服务时,用户量不是特别大,用一台单一的服务器即可满足当前的需求。 2.当业务达到一定量的时候,需要做负载了,需要在服务前面加一个nginx做反向代理。 3.Nginx 作为负载均衡在整个系统中可能成为单点,所以需要把 Nginx 做成高可用,通过 keepalive 来实现。 4.目前 对 Nginx 做了高可用基本上可以满足一般的小网站了,当然 Nginx 是七层负载,在应用层做 http 解析,当用户量特别大的时候效率还是有一定影响的。lvs 是在四层做负载,不需要解析 http 协议,所以要比 Nginx 更快,所以我们可以在 Nginx 之前在做一层负载。 来源: https://www.cnblogs.com/chaselogs/p/9306609.html

乐视秒杀:每秒十万笔交易的数据架构解读

爱⌒轻易说出口 提交于 2019-12-24 10:50:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定地完成支付尤为重要。所以在2015年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的支撑。 一. 分库分表 在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。支付系统要处理每秒十万笔订单,需要的是每秒数十万的数据库更新操作(insert加update),这在任何一个独立数据库上都是不可能完成的任务,所以我们首先要做的是对订单表(简称order)进行分库与分表。 在进行数据库操作时,一般都会有用户ID(简称uid)字段,所以我们选择以uid进行分库分表。 分库策略我们选择了“二叉树分库” , 所谓“二叉树分库”指的是:我们在进行数据库扩容时,都是以2的倍数进行扩容。比如:1台扩容到2台,2台扩容到4台,4台扩容到8台,以此类推。 这种分库方式的好处是,我们在进行扩容时,只需DBA进行表级的数据同步,而不需要自己写脚本进行行级数据同步。 光是有分库是不够的,经过持续压力测试我们发现,在同一数据库中

乐视秒杀:每秒十万笔交易的数据架构解读

淺唱寂寞╮ 提交于 2019-12-24 10:41:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定地完成支付尤为重要。所以在2015年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的支撑。 一. 分库分表 在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复杂,无非是通过一致性哈希扩展缓存节点,水平扩展web服务器等。支付系统要处理每秒十万笔订单,需要的是每秒数十万的数据库更新操作(insert加update),这在任何一个独立数据库上都是不可能完成的任务,所以我们首先要做的是对订单表(简称order)进行分库与分表。 在进行数据库操作时,一般都会有用户ID(简称uid)字段,所以我们选择以uid进行分库分表。 分库策略我们选择了“二叉树分库”,所谓“二叉树分库”指的是:我们在进行数据库扩容时,都是以2的倍数进行扩容。比如:1台扩容到2台,2台扩容到4台,4台扩容到8台,以此类推。这种分库方式的好处是,我们在进行扩容时,只需DBA进行表级的数据同步,而不需要自己写脚本进行行级数据同步。 光是有分库是不够的,经过持续压力测试我们发现,在同一数据库中

19年12月份面试集合【redis】

独自空忆成欢 提交于 2019-12-24 05:11:55
了解缓存穿透、缓存雪崩、缓存击穿以及解决方案 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁 1、如何保证Redis高可用和高并发? Redis主从架构,一主多从,可以满足高可用和高并发。出现实例宕机自动进行主备切换,配置读写分离缓解Master读写压力。 2、Redis高可用方案具体怎么实施? 使用官方推荐的哨兵(sentinel)机制就能实现,当主节点出现故障时,由Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性。它有四个主要功能: 集群监控,负责监控redis master和slave进程是否正常工作。 消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员。 故障转移,如果master node挂掉了,会自动转移到slave node上。 配置中心,如果故障转移发生了,通知client客户端新的master地址。 3、你能说说Redis哨兵机制的原理吗? 通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决。每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否活着,如果发现对方在指定时间内未回应,则暂时认为对方宕机

Keepalived 实现 nginx 高可用

流过昼夜 提交于 2019-12-24 02:12:14
 一、什么是 keepalived    Keepalived 是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供 loadbalancing (负载均衡)和 high-availability (高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。   上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空间(kernel space)。 内核空间 :主要包括IPVS(IP虚拟服务器,用于实现网络服务的负载均衡)和NETLINK(提供高级路由及其他相关的网络功能)两个部份。 用户空间 : WatchDog:负载监控checkers和VRRP进程的状况 VRRP Stack:负载负载均衡器之间的失败切换FailOver,如果只用一个负载均稀器,则VRRP不是必须的。 Checkers:负责真实服务器的健康检查healthchecking,是keepalived最主要的功能。换言之,可以没有VRRP Stack,但健康检查healthchecking是一定要有的。 IPVS wrapper:用户发送设定的规则到内核ipvs代码 Netlink Reflector

Keepalived高可用集群应用实践

房东的猫 提交于 2019-12-23 22:35:42
一,Keepalived高可用软件   1,Keepalived介绍   1.1 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。   1.2 Keepalived软件主要是通过VRRP协议实现高可用功能的。   2,Keepalived服务三个重要功能     2.1 管理 LVS负载均衡软件     2.2 实现对 LVS集群节点健康检查功能( healthcheck)     2.3 作为系统网络服务的高可用功能( failover)   3,Keepalived高可用故障切换原理     3.1 Keepalived高可用服务之间的故障切换转移,是通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现的。     3.2 在Keepalived服务正常工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的IP资源及服务。而当主Master节点恢复时