高可用

数据库高可用方案

混江龙づ霸主 提交于 2020-03-13 02:43:54
低读低写并发、低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。 3.开发说明 此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。 数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。 具体配置可参考资料: http://lizhenliang.blog.51cto.com/7876557/1362313 http://database.51cto.com/art/201012/237204.htm http://gaoke.iteye.com/blog/2283890 4.适应场景 读和写都不高的场景(单表数据低于500万),双机高可用。 5.优缺点 优点是一个机器故障了可以自动切换;缺点是只有一个库在工作,读写并未分离,并发有限制。 方案二:主从结构方案 1.数据库架构图 2.特点 一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。 3.开发说明 这种方案的实现,要借助数据库中间件Mycat来实现,Mycat的datahost配置如下

集群

送分小仙女□ 提交于 2020-03-12 19:56:19
Linux集群 使用多台服务器搭建成一个集群来运行应用程序,不仅可以避免单点故障,还能提升服务器的承载能力 集群从功能实现上分为两种:高可用集群和负载均衡集群 高可用集群,当一台服务器宕机不能提供服务时,还有另外的服务器顶替 负载均衡集群,把用户的请求分摊到多台服务器上 搭建高可用集群 高可用集群,即“HA集群”,也称作“双机热备” 常见实现高可用的开源软件有heartbeat和keepalived keepalived工作原理 VRRP协议,是实现路由高可用的一种通信协议,在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里有一个master主机和n个backup备用机,工作时,master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。 keepalived就是采用VRRP协议实现的高可用。keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;check模块负责健康检查;vrrp模块用来实现VRRP协议 实现Wed高可用 VIP:虚拟ip,服务器靠这个ip对外提供服务,当master机器宕机时,VIP被分配到backup 安装服务 准备两台机器,一台master

千锋云计算毕业设计论文:高并发大型互联网站架构设计(四)

99封情书 提交于 2020-03-11 02:32:27
每年进入3-4月所有的高等院校开始了一年一度的毕业生答辩准备阶段,现如今毕业论文或者毕业设计也更加的贴近了互联发展的趋势,很多学校开始做最热话题云计算openstack架构的实现以及云计算环境搭建,先不说这个毕业设计的切入点是否正确,就说选择该题目后你如何下手?下面给大家分享千锋讲师给学员准备的高并发大型互联网站架构设计第四部分。 数据库 一个公司的数据相当于一个公司的经济命脉,如果数据丢失或者数据出现误差,那么将有可能使这个公司不复存在。所以保障数据库的高可用就显得尤为重要了。 保障数据库的高可用其根本在于避免单节点故障,刚开始时我们的网站数据库架构只有后端的MySQL集群服务器,随着数据量的增加,无关系的数据越来越多,为了应对更大的流量,减少开销,在MySQL集群前加入了Redis集群,再到后来,数据库的流量进一步增大,为了缓解数据库服务器的压力,在Redis集群前又加入了MQ,以确保数据库的高可用及快速访问。如图2-7所示: 图2-7 数据库架构图 MySQL MySQL是一个小型关系型数据库管理系统,目前MySQL被广泛地应用在中小型网站中。因为其具有体积小、速度快、总体拥有成本低,开放源代码等特点[15]。 MySQL高可用 在设计MySQL数据库的高可用的架构时,重点要满足以下几点要求: 1.保证数据库的可用性,如果发生意外情况,要能够快速响应。 2

2.2.2 LVS负载均衡软件

僤鯓⒐⒋嵵緔 提交于 2020-03-10 00:21:40
目录 2.2.2.1 LVS基础概念解析 1、LVS简介 1.1、LVS是什么 1.2、LVS能干什么 2、Linux Virtual Server项目 2.1、Load Balancer(负载调度器) 2.2、Linux Virtual Server项目的目标 2.3、LVS项目已提供了一个实现可伸缩网络服务的Linux Virtual Server框架 2.4、可以利用LVS框架实现 2.2.2.2 基于VIP的keepalived高可用架构讲解 2.2.2.3 搭建LVS负载均衡集群 2.2.2.1 LVS基础概念解析 1、LVS简介 1.1、LVS是什么 LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。 在linux内核2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核 1.2、LVS能干什么 LVS主要用于多服务器的负载均衡 。它 工作在网络 4 层 ,可以实现高性能,高可用的服务器集群技术。 它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。他易用,配置非常简单, 且有多种负载均衡的方法。他稳定可靠,即使在集群的服务器中某台服务器无法正常工作, 也不影响整体效果。另外可扩展性也非常好。 Nginx工作在 7 层网络模型下 2、Linux Virtual

redis知识点

时光毁灭记忆、已成空白 提交于 2020-03-08 21:38:20
1 redis特点   内存数据库,读写速度快,被应用于缓存。   数据类型丰富,支持事务、持久化、LUA脚本、LRU驱动事件、多种集群方案。   丰富的特性:缓存,消息,过期,自动删除 2 数据类型:   hash: k-v集合,适用于存储对象。 由于组合式的压缩,内存利用率更高。   字符串:一个键最大能存 512MB   列表:按照插入顺序排序。      异步队列: rpush为生产消息, lpop为消费消息。但是消费者下线时,生产消息会丢失。   set集合: string类型的无序集合,通过哈希表实现,增删查的复杂度是 O( 1)。   zset:有序集合,且不重复。 3 存储结构:   redis通讯协议 RESP格式的命令文本存储。是 redis客户端和服务端之前使用的一种通讯协议。特点:实现简单、快速解析、可读性好。 4 redis做缓存的原因   高性能:   a 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。b 将该用户访问的数据存在缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当快。c 如果数据库中的对应数据改变的之后, 同步改变缓存中相应的数据即可 !   高并发:   直接操作缓存能够承受的请求是远远大于直接访问数据库的

高可用集群-lvs

谁说胖子不能爱 提交于 2020-03-08 19:47:12
目录 lvs高可用集群 技术简介: 集群采用三层结构: lvs集群类型中的术语: lvs集群的类型: lvs-nat: lvs-dr: lvs-tun: lvs-fullnat: ipvs scheduler: 静态方法:仅根据算法本身进行调度 动态方法:主要根据每RS当前的负载状态及调度算法进行调度; lvs-nat配置: 拓扑结构: lvs-nat数据流向图: 设计要点: RS1: RS2: VS: lvs-dr配置: 拓扑结构: LVS-DR模拟数据流向图 设计要点: dr模型中,各主机上均需要配置VIP,解决地址冲突的方式有三步: RS的预配置脚本: VS的配置脚本: 路由器上配置: 后记 lvs-dr模型中:vip与dip/rip不在同一网段的实验环境设计及配置实现 参考文档 lvs高可用集群 技术简介: LVS集群采用IP负载均衡技术和基于内容请求分发技术。 调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行, 且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。 整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。 为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性 集群采用三层结构: 一般来说,LVS集群采用三层结构,其主要组成部分为: 负载调度器(load balancer)

CentOS7构建LVS+Keepalived高可用方案

这一生的挚爱 提交于 2020-03-08 14:07:35
负载均衡(LB)软件 常见负载均衡软件有:LVS、Nginx、Haproxy LVS : 1). 基于4层网络协议,几乎无流量产生,这个特点也决定这几个负载均衡软件里负载能力最强,内存、CPU占用资源也低。 2). 应用范围广,不仅对Web服务做负载均衡,而且可结合其他应用做负载,如LVS+MySQL负载均衡。 3). 配置简单, 可配置东西较少。 4). 无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会收到大流量的影响。 5). 有个虚IP概念。 Nginx : 1). 基于7层网络协议,对Http应用做分流策略,如配置域名。 2). 高负载、稳定。支持上万高并发。负载能力小于LVS。 3). 安装配置简单,支持的正则比Haproxy丰富。且对网络稳定性的依赖非常小。 4). 可通过端口检测到服务器内部的故障,如根据服务器处理网页返回的状态码、超时等,把返回错误的请求重新提交到另一个节点。 5). 作Web服务器。 6). 反向代理\负载均衡。 Haproxy : 1). 支持虚拟主机,可工作在4层、7层。 2). 负载均衡效率上来讲Haproxy比Nginx更出色,在并发处理上也是优于Nginx。 3). 能够补充Nginx的一些缺点,如支持Session的保持,Cookie的引导。同时支持通过获取指定的url来检测后端服务器的状态。 4).

Keepalived

社会主义新天地 提交于 2020-03-07 18:38:54
文章目录 1.1、Keepalived简介 1.2、Keepalived是什么? 1.3、VRRP协议与工作原理 1.4、Keepalvied的工作原理 1.5、Keepalived体系结构 1.1、Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管。 它与HeartBeat Rose HA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦。 与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可完成。 1.2、Keepalived是什么? Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态

时间序列数据库(TSDB)初识与选择(InfluxDB,OpenTSDB,Druid)

≡放荡痞女 提交于 2020-03-07 05:54:12
背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词。大数据、人工智能、物联网、机器学习、商业智能、智能预警啊等等。 以前的系统,做数据可视化,信息管理,流程控制。现在业务已经不仅仅满足于这种简单的管理和控制了。数据可视化分析,大数据信息挖掘,统计预测,建模仿真,智能控制成了各种业务的追求。 “所有一切如泪水般消失在时间之中,时间正在死去“ ,以前我们利用互联网解决现实的问题。现在我们已经不满足于现实,数据将连接成时间序列,可以往前可以观其历史,揭示其规律性,往后可以把握其趋势性,预测其走势。 于是,我们开始存储大量时间相关的数据(如日志,用户行为等),并总结出这些数据的结构特点和常见使用场景,不断改进和优化,创造了一种新型的数据库分类——时间序列数据库(Time Series Database). 时间序列模型 时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 每个时序点结构如下: timestamp: 数据点的时间,表示数据发生的时间。 metric: 指标名,当前数据的标识,有些系统中也称为name。 value: 值,数据的数值,一般为double类型,如cpu使用率,访问量等数值,有些系统一个数据点只能有一个value,多个value就是多条时间序列。有些系统可以有多个value值

时间序列数据库(TSDB)初识与选择(InfluxDB、OpenTSDB、Druid、Elastic

放肆的年华 提交于 2020-03-06 10:07:50
背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词。大数据、人工智能、物联网、机器学习、商业智能、智能预警啊等等。 以前的系统,做数据可视化,信息管理,流程控制。现在业务已经不仅仅满足于这种简单的管理和控制了。数据可视化分析,大数据信息挖掘,统计预测,建模仿真,智能控制成了各种业务的追求。 “所有一切如泪水般消失在时间之中,时间正在死去“,以前我们利用互联网解决现实的问题。现在我们已经不满足于现实,数据将连接成时间序列,可以往前可以观其历史,揭示其规律性,往后可以把握其趋势性,预测其走势。 于是,我们开始存储大量时间相关的数据(如日志,用户行为等),并总结出这些数据的结构特点和常见使用场景,不断改进和优化,创造了一种新型的数据库分类——时间序列数据库(Time Series Database). 时间序列模型 时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 每个时序点结构如下: timestamp: 数据点的时间,表示数据发生的时间。 metric: 指标名,当前数据的标识,有些系统中也称为name。 value: 值,数据的数值,一般为double类型,如cpu使用率,访问量等数值,有些系统一个数据点只能有一个value,多个value就是多条时间序列。有些系统可以有多个value值