高可用

Redis高可用

南楼画角 提交于 2020-01-08 10:56:26
https://www.cnblogs.com/bingshu/p/9776610.html Redis高可用概述 在 Web 服务器中, 高可用 是指服务器可以 正常访问 的时间,衡量的标准是在 多长时间 内可以提供正常服务( 99.9% 、 99.99% 、 99.999% 等等)。 在 Redis 层面, 高可用 的含义要宽泛一些,除了保证提供 正常服务 (如 主从分离 、 快速容灾技术 等),还需要考虑 数据容量扩展 、 数据安全 等等。 在 Redis 中,实现 高可用 的技术主要包括 持久化 、 复制 、 哨兵 和 集群 ,下面简单说明它们的作用,以及解决了什么样的问题: 持久化 :持久化是 最简单的 高可用方法。它的主要作用是 数据备份 ,即将数据存储在 硬盘 ,保证数据不会因进程退出而丢失。 复制 :复制是高可用 Redis 的基础, 哨兵 和 集群 都是在 复制基础 上实现高可用的。复制主要实现了数据的 多机备份 以及对于 读操作的负载均衡 和 简单的故障恢复 。缺陷是 故障恢复无法自动化、写操作无法负载均衡、存储能力受到单机的限制。 哨兵 :在复制的基础上,哨兵实现了 自动化 的 故障恢复 。缺陷是 写操作 无法 负载均衡 , 存储能力 受到 单机 的限制。 集群 :通过集群, Redis 解决了 写操作 无法 负载均衡 以及 存储能力 受到 单机限制 的问题

带你了解分布式系统的负载均衡,这个你知道吗?

≡放荡痞女 提交于 2020-01-07 16:36:52
一、 什么是负载均衡? 什么是负载均衡? 记得第一次接触 Nginx 是在实验室,那时候在服务器部署网站需要用 Nginx 。Nginx 是一个服务组件,用来反向代理、负载平衡和 HTTP 缓存等。那么这里的 负载均衡 是什么? 负载均衡(LB,Load Balance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避免过载。 资源,相当于每个服务实例的执行操作单元,负载均衡就是将大量的数据处理操作分摊到多个操作单元进行执行,用来解决互联网分布式系统的大流量、高并发和高可用的问题。那什么是高可用呢? 二、什么是高可用? 首先了解什么是高可用? 这是 CAP 定理是分布式系统的基础,也是分布式系统的 3 个指标: Consistency(一致性) Availability(可用性) Partition tolerance(分区容错性) 那高可用(High Availability)是什么?高可用,简称 HA,是系统一种特征或者指标,通常是指,提供一定性能上的服务运行时间,高于平均正常时间段。反之,消除系统服务不可用的时间。 衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用。 举个例子,一些知名的网站保证 4 个 9 以上的可用性,也就是可用性超过 99.99%。那 0.01% 就是所谓故障时间的百分比

汇聚能量,元气弹发射 | PingCAP Special Week - Tools matter 有感

霸气de小男生 提交于 2020-01-07 14:15:28
作者:唐刘 对于 80 后的男生来说,『七龙珠』是一部绕不开的经典漫画,里面的主角孙悟空掌握了一项强大的必杀技 - 元气弹,他通过收集万物的能量,汇聚成一个有巨大破坏力的能量球,然后发射给反派将其打败。每每在漫画里面看到这样的情况,年少的我就激动不已,梦想着有一天也可以自己举起双手,汇聚出元气弹。 当然,现在我们知道举起双手是不可能造出元气弹了,但从另一方面来说,如果我们能很好地利用好大家的力量,统一的往一个方向努力,解决某一个特定的问题,这不就是另一种元气弹的形式吗?在 PingCAP,我们每个季度都会做这样一次活动,叫做 Special Week(后面简称 SW),在 2019 年第四季度,我们 SW 的主题是 - Tools matter,很直白,就是工具很重要。 PingCAP 一直致力于跟社区一起构建 TiDB 的生态,这其中 Tools 扮演了非常重要的角色。大家可能会用 TiDB Data Migration(以下简称 DM)将 MySQL 的数据迁移到 TiDB,或者使用 TiDB Binlog 工具将 TiDB 的数据同步到下游其他的服务。 这次 Special Week 希望集思广益,从其他角度来改进 Tools,降低大家使用 TiDB 的门槛。 为了将 SW 相关的进度公开到社区。我们创建了一个 GitHub project 来放置所有的开发任务

亿级流量系统架构之如何设计高容错分布式计算系统

。_饼干妹妹 提交于 2020-01-07 11:42:19
一、写在前面 上篇文章 《大型系统架构演进之如何支撑百亿级数据的存储与计算》 ,聊了一下商家数据平台第一个阶段的架构演进。通过离线与实时计算链路的拆分,离线计算的增量计算优化,实时计算的滑动时间窗口计算引擎,分库分表 + 读写分离,等各种技术手段,支撑住了百亿量级的数据量的存储与计算。 我们先来回看一下当时的那个架构图,然后继续聊聊这套架构在面对高并发、高可用、高性能等各种技术挑战下,应该如何继续演进。 二、active-standby高可用架构 大家看看上面的那个架构图,有没有发现里面有一个比较致命的问题?就是如何避免系统单点故障! 在最初的部署架构下,因为数据平台系统对CPU、内存、磁盘的要求很高,所以我们是单机部署在一台较高配置的虚拟机上的,16核CPU、64G内存、SSD固态硬盘。这个机器的配置是可以保证数据平台系统在高负载之下正常运行的。 但是如果仅仅是单机部署数据平台系统的话,会导致致命的单点故障问题,也就是如果单台机器上部署的数据平台系统宕机的话,就会立马导致整套系统崩溃。 因此在初期的阶段,我们对数据平台实现了 active-standby的高可用架构 ,也就是一共部署在两台机器上,但是同一时间只有一台机器是会运行的,但是另外一台机器是备用的。处于active状态的系统会将滑动窗口计算引擎的计算状态和结果写入zookeeper中,作为元数据存储起来。 ●

Redis 高可用之\"持久化\"

ⅰ亾dé卋堺 提交于 2020-01-07 08:46:30
Redis高可用概述 在Redis中,实现高可用的技术主要包括:持久化、复制(读写分离)、哨兵、集群。 持久化: 持久化是最简单的高可用方法(有时甚至不被归为高可用手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 复制: 复制是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。 缺陷:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。 哨兵: 在复制的基础上,哨兵实现了自动化的故障恢复。 缺陷:写操作无法负载均衡;存储能力收到单机限制。 集群: 通过集群,Redis解决了操作无法负载均衡,以及存储能力收到单机限制的问题,实现了较为完善的高可用解决方案。 Redis持久化概述 持久化的功能:Redis 是内存数据库,数据都是存储在内存中。 Redis 的持久化分为 RDB 和 AOF 持久化: 前者是将数据保存到硬盘。 后者是将每次执行的写命令保存到硬盘。 RDB 持久化 ​ RDB持久化是将当前进程中的数据生成快照保存到硬盘中(因此也叫做快照持久化),保存的文件后缀是RDB; ​ 当Redis重新启动时,可以读取快照文件恢复数据。 触发条件 : 手动触发 自动触发 手动触发 :save命令和bgsave命令都可以生成 RDB 文件。 ​

分布式事务框架-seata初识

白昼怎懂夜的黑 提交于 2020-01-06 15:44:48
摘自: https://www.cnblogs.com/iceggboom/p/12144570.html 分布式事务框架-seata初识 一、事务与分布式事务 事务,在数据库中指的是操作数据库的最小单位,往大了看,事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。 那为什么会有分布式事务呢?单机事务是通过将操作限制在一个会话内通过数据库本身的锁以及日志来实现ACID.因为引入了分布式架构,所以事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.简单说就是多各数据库之间无法保证保证各自的操作同时成功或同时失败。 二、介绍 Seata:Simple Extensible Autonomous Transaction Architecture,简易可扩展的自治式分布式事务管理框架,其前身是fescar。阿里巴巴GTS的开源版实现,是一种分布式事务的解决方案。 三、架构 Coordinator Core:最下面的模块是事务协调器核心代码,主要用来处理事务协调的逻辑,如是否 Commit、Rollback 等协调活动。 Store:存储模块,用来将我们的数据持久化,防止重启或者宕机数据丢失。 Discover:服务注册/发现模块,用于将 Server 地址暴露给 Client。 Config

跟我学SpringCloud | 第七篇:Spring Cloud Config 配置中心高可用和refresh

谁说胖子不能爱 提交于 2020-01-05 11:47:12
SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如无特殊说明,本系列教程全采用以上版本 1. 引言 上一篇我们聊了Spring Cloud Config 配置中心,并且和Github做了集成,我们的Server端是单机版的,任何单机版的服务都只能使用与测试环境或者自己做Demo测试, 生产环境严禁使用单机服务 ,配置中心在整个微服务体系中都是及其重要的一个节点,尤其是在DevOps中自动扩容,如果配置中心宕机,那么所有的自动扩容都会失败。 所以这一篇我们聊聊配置中心的高可用,说到高可用,在springcloud体系中,是有注册中心的,那么,我们的配置中心也是一个服务,可不可以使用Eureka做服务的注册与发现呢? 答案是肯定的。 2. Serve端 我们将上一篇的Serve端Copy到新的目录中,增加Eureka-client的依赖,使得Config-Serve可以注册到Eureka上。 2.1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=

Keepalived+Haproxy实现高可用负载均衡

 ̄綄美尐妖づ 提交于 2020-01-05 11:30:42
高可用负载(主备节点)部署步骤 完成下图一个简单的高可用负载机制: 1.拷贝keepalived-1.2.19.tar.gz至Linux的/home目录(也可以是其它目录) 2.解压并安装keepalived: tar -zxvf keepalived-1.2.19.tar.gz yum install popt-devel yum -y install openssl-devel cd keepalived-1.2.19 ./configure make && make install 这样keepalived编译及安装完成! 3.拷贝并复制keepalived: cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ cp /usr/local/sbin/keepalived /usr/sbin/ 上传并覆盖keepalived.conf至/etc/keepalived 备注:keepalived.conf详见步骤4 上传check

MySQl资料链接

你。 提交于 2020-01-04 00:14:40
原文:http://www.uml.org.cn/sjjm/sjjm-MySql.asp MySQl MySQL高可用数据库内核深度优化的四重定制 MySQL数据表存储引擎类型及特性 MySQL分布式数据库高可用架构、复制机制、多机房 Mysql高并发优化 我必须得告诉大家的MySQL优化原理 MySQL注入攻击与防御 腾讯云:MySQL数据库的高可用性分析 一步一步打造MySQL高可用平台 MySQL 日志管理详解 MySQL锁解决并发问题详解 MySQL的配置与管理 MySQL日志管理 MySQL 5.7新特性介绍 MySQL数据库读写分离中间件Atlas 京东MySQL数据库主从切换自动化 全面了解MySql中的事务 MySQL NULL值简介 MySQL备份的持续验证:还原备份 初识MySQL存储过程 优步工程团队对容器化MySQL的应用 MySQL NULL值简介 MySQL备份的持续验证:还原备份 MySQL SQL语句优化技巧 MySQL简单主从方案及暴露的问题 Uber为什么从Postgres迁移到MySQL 一种MySQL到HBase的迁移策略的研究与实现 MySQL 索引详解大全 MYSQL企业常用架构与调优经验分享 SQL优化之六脉神剑 MySQL 大表优化方案探讨 mysql 数据库引擎 MySQL数据库事务隔离级别 MySQL 用户权限详细汇总

分布式开发之消息队列

天涯浪子 提交于 2020-01-01 18:03:32
本文围绕如下几点进行阐述: 为什么使用消息队列? 使用消息队列有什么缺点? 消息队列如何选型? 如何保证消息队列是高可用的? 如何保证消息不被重复消费? 如何保证消费的可靠性传输? 如何保证消息的顺序性? 1. 为什么使用消息队列? 解耦,异步,限流 1.1 解耦 1.1.1 传统模式 传统模式的缺点: 系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,增加维护难度 1.1.2 中间件模式 中间件模式的的优点: 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。 1.2 异步 1.2.1 传统模式 传统模式的缺点: 一些非必要的业务逻辑以同步的方式运行,太耗费时间。 1.2.2 MQ中间件模式 中间件模式的的优点: 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 1.3 限流 1.3.1 传统模式 传统模式的缺点: 并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 1.3.2 中间件模式 中间件模式的的优点: 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。 2. 使用消息队列有什么缺点? 导致系统可用性降低,若MQ发生故障会影响系统可用性。系统复杂性增加,引入MQ会引入新的关注点