无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能所有服务器都出现故障。例如,典型的有机房断电、机房火灾、地震、水灾……这些极端情况会导致某个系统所有服务器都故障,或者业务整体瘫痪,而且即使有其他地区的备份,把备份业务系统全部恢复到能够正常提供业务,花费的时间也比较长,可能是半小时,也可能是12小时。因为备份系统平时不对外提供服务,可能会存在很多隐藏的问题没有发现。如果业务期望达到即使在此类灾难性故障的情况下,业务也不受影响,或者在几分钟内就能够很快恢复,那么就需要设计异地多活架构。
当谈到架构的高可用时,无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能所有服务器都出现故障。例如,典型的有机房断电、机房火灾、地震、水灾……这些极端情况会导致某个系统所有服务器都故障,或者业务整体瘫痪,而且即使有其他地区的备份,把备份业务系统全部恢复到能够正常提供业务,花费的时间也比较长,可能是半小时,也可能是一天。因为备份系统平时不对外提供服务,可能会存在很多隐藏的问题没有发现。如果业务期望达到即使在此类灾难性故障的情况下,业务也不受影响,或者在几分钟内就能够很快恢复,那么就需要设计异地多活架构。
在异地多活项目整体推过程中的一些注意事项和设计点归纳和整理,抛砖引玉,其中一些点还有待深入探讨和优化。
异地多活看字面意思 :不通的地方部署服务。前段时间发生的B站挂掉的事情,网上众说纷纭,有的说是有机房着火了,导致服务宕机。那对于这种突发的情况,我们应该如何应对呢?包括说有些地方地震了导致机房宕机等等。
如上图,两地三中心的架构,是为了提高系统的容错、容灾的能力。当一个数据中心不可用时,能够将关键业务的流量切换到其他数据中心,可以抵御城市级的自然灾害。
最近阅读了一本架构方面的入门图书叫《从零开始学架构:照着做,你也能成为架构师》,部分内容比较不错,先做书摘总结,以便加深印象与未来回顾学习。
最近恰好在搞异地双活,以下是一个梳理: 基本概念 1、异地容灾。这仅仅是一个冷备的概念。也就是在平时正常的时候,另外一个机房只是当做备份。 2、异地双(多)活。而异地双(多)活,却是指有两个或者多个可以同时对外服务的节点,任意一个点挂了,也可以迅速切换到其他节点对外服务,节点之间的数据做到准实时同步。 分类 根据是否需要数据同步大体分为三类: 1、必须同步型。(比如数据库) 2、无须同步型。比如缓存,仅仅是当做缓存,就可以这样做(这个有待商榷,其实缓存也需要同步的,严格来说的话)。 3、只能单活(对全局原
导读:《架构设计》系列为极客时间李运华老师《从0开始学架构》课程笔记。本文为第七部分,主要介绍异地多活,异地多活缩短了时延,提高可用性,但是带来复杂度和成本无疑是巨大的,不是一般公司可以承受的,只有在对可用性要求特别高的业务场景才建议使用。
本来这个公众号的交流消息中间件相关的技术的。这周去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下。
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。
灾备: 是指容灾和备份。容灾是为了在遭遇灾害时能保证信息系统能正常运行,帮助企业实现业务7*24小时连续性的目标,备份是为了应对灾难来临时造成的数据丢失问题。容灾备份产品的最终目标是帮助企业应对人为误操作、软件错误、病毒入侵等“软”性灾害以及硬件故障、自然灾害等“硬”性灾害。
在有赞早期的时候,当时只有 MySQL 做存储,codis 做缓存,随着业务发展,某些业务数据用 MySQL 不太合适, 而 codis 由于当缓存用, 并不适合做存储系统, 因此, 急需一款高性能的 NoSQL 产品做补充。考虑到当时运维和开发人员都非常少, 我们需要一个能快速投入使用, 又不需要太多维护工作的开源产品。 当时对比了几个开源产品, 最终选择了 aerospike 作为我们的 KV 存储方案。 事实证明, aerospike 作为一个成熟的商业化的开源产品承载了一个非常好的过渡时期 在很少量的开发和运维工作支持下, 一直稳定运行没有什么故障, 期间满足了很多的业务需求, 也因此能抽出时间投入更多精力解决其他的中间件问题。
摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务的不断发展,TiDB 版本快速迭代,我们将 TiDB 在摩拜单车的使用场景逐渐分为了三个等级:
作者丨DongGuoChao 来源丨https://blog.dogchao.cn/?p=299 导读:异地多活,作为一种高可用部署架构,成为大中型互联网公司的选择。像大家熟知的大型互联网公司,如阿里
当前,市场上常见的容灾模式可分为本地容灾、同城容灾、异地容灾、双活数据中心、两地三中心几种。
饿了么技术团队花了1年多的时间,实现了业务的整体异地多活,能够灵活的在多个异地机房之间调度用户,实现了自由扩容和多机房容灾的目标。本文介绍这个项目的整体结构,还简要介绍实现多活的5大核心基础组件,为读者建立基本的概念模型,后续会有系列文章陆续介绍每个组件的实现细节。读者能够从中了解到做异地多活的大方向,为实现自己的异地多活,或者是容灾备份提供参考。
先来回顾一下上一篇的小集群架构,tomcat集群,nginx进行反向代理,服务器异地: 由上一篇讲到,部署的时候,将war部署在不同的服务器里,通过spring-session实现了session共享
来源:https://blog.dogchao.cn/?p=299 前言 后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过 F5 或者任何代理
点击上方蓝色“程序猿DD”,选择“设为星标” 回复“资源”获取独家整理的学习资料! 后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。服务端进行状态维护主要是通过磁盘或内存进行保存,比如MySQL数据库,redis等内存数据库。除了这两种类型的维护方式,还有jvm的内存的状态维持,但jvm的状态生命周期通常很短。 高可用的一些解决方案 高可用,从发展来看,大致经过了这几个
随着业务的增长和技术的演进,在应用架构上,我们经历了单一用用架构->垂直应用架构->分布式应用架构的发展。对应的,后台数据库也出现了分布式的解决方案。读写分离,负载均衡读写以及两点双写集群甚至于多点多写集群这些,都离不开数据库的同步。一般的,这些同步都是在同一机房内的。 渐渐的,我们的业务扩展到了全国各地甚至与全世界各地。我们不能也不再满足于将应用和数据库部署在一个机房之中。在多个机房中,我们部署相同的服务。那么一个比较严峻的问题就是数据库跨机房的镜像如何做,也就是我们如何保证不同机房间的数据一致性?
在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。
在软件开发领域,异地多活是分布式系统架构设计的一座高峰,很多人经常听到过他,但很少人理解其中的原理;
说是图解,其实不是用正规的UML, 不是流程图, 不是时序图, 不是... Mirror Maker 逻辑简单, 代码不多, 就一个 sacala文件: core/src/scala/kafka/tools/MirrorMaker.scala文件,里面使用了producer和consumer的java客户端SDK Mirror Maker 这东西在使用中发现对同步的机房间网络质量要求还是比较高的, 特别是异地机房间 使用Mirror Maker作同步需要加上对consumer lag的监控, 如果lag一直
作者:[美]威廉·肯尼迪(William Kennedy)布赖恩·克特森(Brian
本文由公众号“水滴与银弹”号主Kaito原创分享,原题“搞懂异地多活,看这篇就够了”,为使文章更好理解,有修订。
在大部分互联网公司中业务和技术是这样的关系,公司是业务驱动型的,技术是服务于业务的,在不同阶段技术承担着业务背后的守门员角色。
https://www.cnblogs.com/grefr/p/6087942.html#top
Oracle GoldenGate 是一款实时访问、基于日志变化捕捉数据,并且在异构平台之间迚行数据传输的产品。GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达10:1的压缩率对数据迚行压缩,可以大大降低带宽需求。在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的。
常见的资源,例如磁盘、网络、CPU等等,都会存在竞争的问题,在构建分布式架构时,可以将原本连接在一起的组件、模块、资源拆分开来,以便达到最大的利用效率或性能。资源隔离之后,当某一部分组件出现故障时,可以隔离故障,方便定位的同时,阻止传播,避免出现滚雪球以及雪崩效应。
根据微博目前站内词条消费情况,计算 top 50 消费热度词条,每分钟更新一次,并且按照列表展现给用户。
备注:当你再一个cluster钟使用了federation插件,所有在集群中的 nodes都需要安装federation插件
现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。
常见的资源,例如磁盘、网络、CPU 等等,都会存在竞争的问题,在构建分布式架构时,可以将原本连接在一起的组件、模块、资源拆分开来,以便达到最大的利用效率或性能。
何为后端开发?以一个网站为例,通常来说,前端研发注重页面的展示,交互逻辑。而后端研发,则注重在发生在前端背后(backend)的逻辑上,例如给前端返回数据,存储数据。对于一个电商网站,一个简单的下单动作,后端可能包括商品数据查询,优惠信息计算,库存维护,用户优惠券维护,订单生成,商家通知触发等等。在很多大公司前后端的配比是1:3甚至更高,因为一个复杂的业务系统,前端的展示仅仅是冰山一角,更复杂的业务逻辑都隐藏在后端。
前文提到异地多活的几种型态和基于OceanBase实现方案。这里再总结一下基于其他分布式数据库(MySQL)实现异地多活时要考虑的点。本文不讨论为什么做异地多活,可以参考末尾的文章。
自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限。2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为了 25.6 万笔/秒。
原理类似分布式选举那一套,当一个master节点宕机时,剩下2个投票选出1个新老大,整个集群可以继续服务。对于核心系统,只部署单机房总归有点不保险,万一单机房故障就废了(比如:断电断网、或光缆被挖断)。那有同学肯定会想,多弄几个机房,把集群中的节点分散到多个机房不就好了么?
在互联网大厂,有个普遍的现象:某种程度上,只要是比较重要的系统,都需要考虑系统的容灾问题。
携程金融从成立至今,整体架构经历了从0到1再到10的变化,其中有多个场景使用了缓存来提升服务质量。从系统层面看,使用缓存的目的无外乎缓解DB压力(主要是读压力),提升服务响应速度。引入缓存,就不可避免地引入了缓存与业务DB数据的一致性问题,而不同的业务场景,对数据一致性的要求也不同。本文将从以下两个场景介绍我们的一些缓存实践方案:
👆点击“博文视点Broadview”,获取更多书讯 01 为什么需要云单元架构 云单元架构是在微服务架构上发展起来的解决 IT 系统扩展性及业务连续性的技术架构,它并不是随着微服务架构一起诞生的,而是 IT 系统发展到一定规模且对业务连续性有高要求的情况下需要具备的技术能力。 从集中式架构到分布式架构 传统的集中式 IT 系统架构如下图所示,由小型机(比如 IBM 的 P 系列等)、存储设备(EMC 的 VNX 系列等)、硬件负载均衡设备(典型的比如 F5)等基础设施构成,这些硬件设备具备很强的稳定性,
随着苏宁线下线上业务以及全产业、全业态规模式快速增长,特别是每年苏宁 818 大促、双 11 等大促节点,销售订单基本都呈现倍数级增长态势,需要进行大量资源扩容,单个数据中心的容量有限,已经无法支撑苏宁业务的快速发展。同时,单数据中心在高可用上存在不足,一旦数据中心发生故障,会导致业务受损,用户访问中断,带来严重的影响。针对以上问题,苏宁规划建设多数据中心解决方案迫在眉睫。
多活成本比较高的,双活是两倍,三活可能成本会低一些,但三活的难度更大。因此没有办法对所有业务进行多活,只能对主线做多活。
自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限。
简介:汤波(甘盘),男,1989/02/21,硕士学历。高中开始编程,热爱技术,深信技术让世界更美好。对前沿技术一直保持饥饿感,热衷于创新和革新,让系统体制更为高效和人性化,也深知一个人强走的快,一个团体强才能走的远。在技术团队建设(团队招聘和组建、梯队梯度建设)、技术栈管理(包含技术选型、技术规范建设、软件体系规划)和项目研发管理(软件工程管理、开发效能和质量管理)方面有着较为丰富的实践经验, 维护个人博客tbwork.org。 关注领域:企业中后台,SaaS,PaaS,大型分布式架构,Serverless,Service mesh,新零售,互联网全栈,网络应用/协议开发,计算机算法应用,区块链,人工智能。
随着互联网业务快速发展,多IDC的业务支撑能力和要求也逐步提升,行业内的“两地三中心”方案较为流行。
过去几年,携程技术保障部门在Redis治理方面做了很多工作,解决了运营上的问题,在私有云上也积累了丰富的经验。后又通过引入Kvrocks,在公有云上实现降本增效的目的,从而支撑了公司的国际化战略。
领取专属 10元无门槛券
手把手带您无忧上云