高可用

ipvsadm集群

时间秒杀一切 提交于 2019-12-20 01:45:51
集群 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理 将很多服务器集中起来一起,提供同一种服务,在客户端看来就像是只有一个服务器 可以在付出较低成本的情况下获得在性能,可靠性,灵活性方面的相对较高的收益 任务调度是集群系统中的核心技术 集群分类 1.高性能计算集群HPC:通过以集群开发的并行应用程序,如计算密集型应用 2.负载均衡(LB)集群:客户端负载在计算机集群中尽可能平均分摊 3.高可用(HA)集群:避免单点故障,当一个系统发生故障时,可以快速迁移 LVS:可以实现高可用的,可伸缩的,web,mail,cache和media等网络服务 最终目标是利用Linux操作系统和LVS集群软件实现一个高可用,高性能,低成本的服务器应用集群 LVS集群组成 前端:负载均衡层 中间:服务器群组层 底端:数据共享存储层 LVS术语 Director Server:调度服务器 Real Server:真实服务器 VIP:虚拟IP地址:调度器对外的IP RIP:真实IP地址:集群节点上使用的IP地址 DIP:调度器连接节点服务器的IP地址:调度器对内的IP LVS与NGINX的区别 Nginx代理服务器需要对请求进行解包的过程,再封装转交给集群,反之也是如此,增加了大量封装解包的过程.ip层次来说,web服务器收到的请求的ip不是直接来自于客户端,而是来自于代理服务器.

Keepalived + Nginx 实现高可用

China☆狼群 提交于 2019-12-20 00:39:31
title: “Keepalived + Nginx 实现高可用” url: “https://wsk1103.github.io/” tags: 架构 Nginx Keepalived PS: 理解 Keepalived Keepalived + Nginx 实现高可用的思路: 请求不是直接打到 Nginx 上,而是先通过 Keepalived (虚拟IP,VIP) Keepalived 应该能监控 Nginx 的生命状态 实现: 安装 和启动 keepalived [root@wsk1103 html]# yum install keepalived [root@wsk1103 html]# service keepalived start 修改 keepalived 配置文件 来源: CSDN 作者: wsk1103 链接: https://blog.csdn.net/wsk1103/article/details/103623985

LVS负载均衡群集——理论篇

霸气de小男生 提交于 2019-12-19 19:40:21
LVS负载均衡群集 理解负载均衡群集的原理 掌握LVS-NAT的部署 企业群集应用概述 群集的含义: 1.Cluster,集群、群集 2.由多台主机构成,但对外只表现为一个整体 在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心 解决方法: 1.使用价格昂贵的小型机、大型机 2.使用普通服务器构建服务群集 企业群集分类 根据群集所针对的目标差异,可分为三种类型: 1.负载均衡群集(轮询,最小连接的加权重) 2.高可用群集(访问的速度,可靠性) 3.高性能运算群集(并发处理任务) 负载均衡群集(Load Balance Cluster): 1.以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能 2.LB的负载分配依赖于主节点的分流算法 高可用群集(High Availability Cluster): 1.以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果 2.HA的工作方式包括双工和主从两种模式 高性能运算群集(High Performance Computer Cluster): 1.以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 2

MQ常问的问题

夙愿已清 提交于 2019-12-19 16:42:07
1:为什么使用MQ? 主要是:解耦、异步、削峰。 (1)解耦:A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃…A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使用 MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从 MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超时等情况。 就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果用 MQ 给它异步化解耦。 (2)异步:A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。最终请求总延时是 3 + 300 + 450 + 200 = 953ms,接近 1s,用户感觉搞个什么东西,慢死了慢死了。用户通过浏览器发起请求。如果使用 MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中

基于 Tablestore 的大数据分析 Lambda 架构

↘锁芯ラ 提交于 2019-12-19 11:16:14
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 背景 Tablestore 启发自 Google 的 Bigtable 论文,从2009年开始,在阿里云的飞天团队内,开始萌发。经过10年的锤炼,如今在集团内,云上积累了各式各样的客户和场景。这篇文章我们就来介绍下 Tablestore 大数据场景下的架构和用户场景案例。看看自研的分布式存储平台如何通过贴身理解客户场景,带来大数据架构的简化和升级,并助力业务方最终快速落地他们的需求。 大数据系统建设中的痛 数据的产生是多式多样,我们根据需求会选择不同的存储产品来存放这些数据,例如订单数据,用户信息数据我们会选用一款 OLTP 数据库,日志数据会选择 SLS 日志服务,或者自建 ELK 的方案。又有一些数据我们希望做实时的 计算,并且在 ETL 后在进行长期存储,这时会把数据双写到 Kafka,利用 Kafka 流式对接计算引擎的能力实现上面的需求。一些非结构化数据又会使用 HDFS/OSS 来进行长期存储。这些数据从存储到可以给计算引擎分析需要经过很长的链路。例如如果你选用了一款 OLTP 数据库,你希望进行实时计算或者定期批量计算。考虑到避免影响 TP 在线业务,通常我们会把数据实时或者定期投递出来,进入 Kafka/AP 数据库再分别实现实时计算和批计算。投递的过程可能会涉及到很多模块,例如 DTS

redis 哨兵集群实现高可用

霸气de小男生 提交于 2019-12-19 04:46:56
Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵。哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis master 和 slave 进程是否正常工作。 消息通知:如果某个 redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。 故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。 配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址。 哨兵用于实现 redis 集群的高可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作。 故障转移时,判断一个 master node 是否宕机了,需要大部分的哨兵都同意才行,涉及到了分布式选举的问题。 即使部分哨兵节点挂掉了,哨兵集群还是能正常工作的,因为如果一个作为高可用机制重要组成部分的故障转移系统本身是单点的,那就很坑爹了。 哨兵的核心知识 哨兵至少需要 3 个实例,来保证自己的健壮性。 哨兵 + redis 主从的部署架构,是 不保证数据零丢失 的,只能保证 redis 集群的高可用性。 对于哨兵 + redis 主从这种复杂的部署架构,尽量在测试环境和生产环境,都进行充足的测试和演练。 哨兵集群必须部署 2 个以上节点,如果哨兵集群仅仅部署了 2 个哨兵实例,quorum = 1。

Mha-Atlas-MySQL高可用

穿精又带淫゛_ 提交于 2019-12-18 20:10:13
Mha-Atlas-MySQL高可用 一、MHA简介 1、软件介绍 MHA在MySQL高可用是一个相对成熟的解决方案,是一套优秀的作为mysql高可用 环境下故障切换和主从提升的高可用软件,在MySQL故障切换过程中, MHA能做到0~30秒内自动完成数据库的故障切换操作,并且在进行故障 切换过程中,MHA能最大程度上保证数据库的一致性,以达到真正意义上的高可用。 2、MHA组成 MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。 MHA Manager可以独立部署在一台独立的机器上管理多个Master-Slave集群, 也可以部署在一台Slave上。当Master出现故障时,它可以自动将最新数据的 Slave提升为新的Master,然后将所有其他的Slave重新指向新的Master。 3、MHA工作流程 ①从宕机崩溃的master保存二进制日志时间(binlog events); ②识别含有最近更新的slave; ③应用差异的中继日志(relay log)到其他的slave; ④应用从master保存的二进制日志事件(binlog events); ⑤提升一个slave为新的master; ⑥使其它的slave连接新的master进行复制; 流程详解 1)复制主库binlog日志出来 2)找出relaylog日志最全的从库 3

杉岩数据医疗影像存储解决方案助力深圳某医院PACS业务24小时运行

僤鯓⒐⒋嵵緔 提交于 2019-12-18 18:06:07
X光机、CT、核磁共振等医学影像技术,是辅助临床医生进行决策的重要工具。作为PACS影像数据的载体,杉岩基于双活存储解决方案,推动深圳某医院实现PACS影像数据的集中管理和存储双活,保障医院PACS业务7*24小时运行,方便医生随时随地调用、判读影像数据,让患者体验智慧医疗。 在现代医疗中,X光机、CT、核磁共振等医学影像技术,成为辅助临床医生进行决策的重要工具。作为医疗影像业务的核心,PACS系统(译为“医学影像存档与通信系统”)成为医院信息系统的重要组成部分。 PACS医学影像数据快速增长 深圳某医院创建于1999年,是深圳市政府投资建成的集医疗、教学、科研和预防为一体的现代化三级综合性医院。2017年通过三级甲等医院复审。2018年,医院年门急诊总量约292万人次,年出院病人近7.4万人次,年手术量4.9万次。 该院在深圳有较高的知名度和认可度。 杉岩存储帮助深圳某医院打造PACS支撑平台 该医院现拥有MRI核磁共振、X线C型臂数字化血管造影系统、准分子激光系统(鹰视酷眼)、全身CT、彩色超声波诊断仪、全自动生化分析仪等医疗设备近2000台件,每天产生大量的医疗影像数据,需要强大PACS系统和存储支持。而原有存储系统面临升级改造,这其中包括:原存储已过维保,一旦故障就会影响整个医院信息系统的正常运行;原存储的容量不足,无法满足现阶段PACS系统数据量增长的需求。

电商平台备战促销季的运维秘诀——高可用服务层

匆匆过客 提交于 2019-12-18 17:57:23
高可用设计是互联网系统架构的基础之一,以天猫双十二交易数据为例,支付宝峰值支付次数超过 8 万笔。大家设想一下,如果这个时候系统出现不可用的情况,那后果将不可想象。 而解决这个问题的根本就是服务层的高可用。 什么是服务层 众所周知,服务层主要用来处理网站业务逻辑的,是大型业务网站的核心。比如下面三个业务系统就是典型的服务层,提供基础服务功能的聚合 用户中心:主要负责用户注册、登录、获取用户用户信息功能 交易中心:主要包括正向订单生成、逆向订单、查询、金额计算等功能 支付中心:主要包括订单支付、收银台、对账等功能 整体架构 业务发展初期主要以业务为导向,一般采用 「ALL IN ONE」的架构方式来开发产品,这个阶段用一句话概括就是 「糙猛快」。当发展起来之后就会遇到下面这些问题 文件大:一个代码文件出现超过 2000 行以上 耦合性严重:不相关业务都直接堆积在 Serivce 层中 维护代价高:人员离职后,根本没有人了解里面的业务逻辑 牵一发动全身:改动少量业务逻辑,需要重新把所有依赖包打包并发布 遇到这些问题,主要还是通过「拆」来解决 具体拆的方式,主要根据业务领域划分单元,进行垂直拆分。拆分开来的好处很明显,主要有以下这些: 每个业务一个独立的业务模块 业务间完全解耦 业务间互不影响 业务模块独立 单独开发、上线、运维 效率高 无状态设计 对于业务逻辑服务层

MMM+Amoeba搭建MySQL高可用负载均衡群集

半世苍凉 提交于 2019-12-18 17:45:17
MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。MySQL的读写分离就是只在主服务器上写,只在从服务器上读。基本原理就是让主数据库处理事务性查询,而从服务器处理select查询。数据库复制被用来事务性查询导致的变更同步到群集中的从数据库。 Amoeba主要为应用层访问MySQL时充当sql路由,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关到目标数据库、可并发请求多台数据库。通过Amoeba能够完成数据源的高可用、负载均衡和数据切片等功能。 MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。 amooeba在实际使用中存在单点故障的问题,所以在学习了MMMM之后,我就尝试了使用mmm+amoeba的架构来避免主库的单点故障,接下来我就为大家在虚拟机上模拟服务的搭建过程 项目环境 使用六台服务器模拟搭建,拓扑图如下: