首页 > 其他分享 >微服务18:微服务治理之异地多活容灾

微服务18:微服务治理之异地多活容灾

时间:2023-10-08 16:12:03浏览次数:35  
标签:数据中心 服务 中心 18 多活 业务 异地 容灾

★微服务系列

微服务1:微服务及其演进史
微服务2:微服务全景架构
微服务3:微服务拆分策略
微服务4:服务注册与发现
微服务5:服务注册与发现(实践篇)
微服务6:通信之网关
微服务7:通信之RPC
微服务8:通信之RPC实践篇(附源码)
微服务9:服务治理来保证高可用
微服务10:系统服务熔断、限流
微服务11:熔断、降级的Hystrix实现(附源码)
微服务12:流量策略
微服务13:云基础场景下流量策略实现原理
微服务14:微服务治理之重试
微服务15:微服务治理之超时
微服务16:微服务治理之熔断、限流
微服务17:微服务治理之异常驱逐

1 介绍

互联网行业内在进行微服务高可用建设的时候,不可避免的要考虑一个事情,如何部署才能提高系统的可用性和稳定性。
所以一般情况下,不会只部署一个机房,这样无法完全避免一个机房内网络故障、机房断电,遭受区域网络攻击的风险。
所以有了多机房建设的,但是多机房建设同样也有问题,他们无法近距离的部署,如果部署区域太近(如在同一个城市),依然无法避免区域断电、洪灾、水灾、火灾、地震等灾难情况的发生。
所以业内的大型互联网企业,会耗费大量的人力物理在基础设施建设方面。通过资源的冗余来保证服务的可持续性,这种其实就是资源博弈的过程。

2 高可用架构模型

2.1 两地安中心

两地三中心是一种容灾解决方案,指的是一个生产中心、一个同城灾难备份中心、一个异地灾难备份中心。生产中心的数据同步地复制到同城灾难备份中心,同时,生产中心的数据异步地复制到异地灾难备份中心。同城灾备中心通常具备与生产中心等同业务处理能力,应用可在不丢失数据的情况下切换到同城灾备中心运行,保持业务连续运行。在生产中心和同城容灾中心同时不可用时,可在异地的容灾中心实现业务的恢复,保持业务连续性。
大量案例证明通过这种方案系统能够较快地进行响应和止损,尽可能保全业务数据不丢失,实现更优的RPO和RTO。所以,“两地三中心”容灾解决方案得到了广泛的应用。
具体来说,“两地三中心”具备以下优点:

  1. 提高系统可用性:两个地理位置的数据中心可以同时承担服务,当一个数据中心发生故障时,另一个数据中心可以继续提供服务,保证系统的可用性。
  2. 数据备份与恢复:在“两地三中心”架构中,同城双中心可以相互备份数据,并实时同步数据,减少数据丢失的风险。同时,当一个数据中心发生故障时,异地灾备中心可以用备份数据进行业务的恢复。
  3. 灾备保障:对于一些对数据安全和业务连续性有严格要求的应用,通过“两地三中心”架构可以大大提高灾备保障能力。即使在遭遇自然灾害等不可控因素时,异地灾备中心也可以接管业务,保证业务的连续运行。
  4. 负载均衡与性能优化:通过将数据和业务分布在两个或三个中心,可以平衡负载,提高系统的性能和响应速度。
    因此,“两地三中心”的架构对于那些需要高可用性、数据备份和恢复、灾备保障以及性能优化的系统来说是非常有必要的。在实际应用中,“两地三中心”的架构可以根据实际需求进行灵活调整和扩展。

image

2.2 异地多活

异地多活是一种系统高可用的解决方案,它通过在多个不同机房建立多个数据中心,并且使这多个数据中心都可以同时在线提供服务来避免当出现机房断电、光纤被挖断等场景出现服务不可用的场景,实现服务高可用,同时这多个数据中心之间需要进行数据相互同步来保证数据的最终一致性。

在考虑哪些业务需要异地多活的时候,需要结合业务的重要程度,以及业务是否存在全局逻辑,以及异地多活场景中解决全局逻辑的成本来考虑是否需要做异地多活,同时需要考虑业务是否需要保证数据强一致性。例如,对于登录业务,这是用户中心最重要的业务场景,如果用户登录不了,特别是重度用户,则是非常严重的事故,所以登录需要做异地多活。同时,每个数据中心都有用户的账号和密码信息,故可以做到异地多活。

异地多活是指在不同城市建立独立的数据中心,以实现数据的多个备份和业务的高可用性。以下是实现异地多活的详细解决方案:

  1. 建立多个数据中心:在不同的地理位置建立多个数据中心,每个数据中心具备相同的业务功能,可以独立承担业务运行。
  2. 数据备份与同步:在多个数据中心之间进行数据备份和同步,保证数据的多个副本存在。当某个数据中心发生故障时,其他数据中心可以提供服务,同时将数据同步到其他数据中心。
  3. CDN+负载均衡:CDN即内容分发网络,其目的是在现有的Internet上增加一层新的网络架构,将网站的内容发布到最接近用户的服务器,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。负载均衡技术,负责将用户请求分发到不同的数据中心,以实现业务的负载均衡和高可用性。
  4. 数据复制:通过数据复制技术,将数据从一个数据中心复制到另一个数据中心,以实现数据的多个副本存在,提高数据的安全性和可靠性。
  5. 数据容灾:在数据中心发生故障时,通过数据容灾技术,将数据备份到其他数据中心,以实现数据的可用性和完整性。
  6. 应用容灾:通过应用容灾技术,将应用程序从一个数据中心迁移到另一个数据中心,以实现应用程序的高可用性和故障恢复能力。
  7. 监控和管理:通过监控和管理工具,实时监控数据中心的运行状态和应用程序的运行情况,以便及时发现和解决问题,提高系统的可用性和可靠性。

以上是实现异地多活的详细解决方案,需要根据具体的业务需求和应用场景进行具体的规划和设计。

image

3 业内主流场景

浅谈异地多活及阿里云容灾经验分享
美团大众点评账号业务高可用进阶之路

标签:数据中心,服务,中心,18,多活,业务,异地,容灾
From: https://www.cnblogs.com/wzh2010/p/17206196.html

相关文章

  • 2023-2024-1 学号20231318《计算机基础与程序设计》第二周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计第一周作业这个作业的目标计算机科学概论第1章,《C语言程序设计》第1章,云班课测试作业正文2023-2024-1学号20231318《计算机基础与程序设计》......
  • Python入门示例系列18 条件控制 Conditional Statements
    Python提供了bool类型来表示真(对)或假(错),比如常见的5>3比较算式,这个是正确的,在程序世界里称之为真(对),Python使用True来代表;再比如4>20比较算式,这个是错误的,在程序世界里称之为假(错),Python使用False来代表。True和False是Python中的关键字,当作为Python代码输入时,一......
  • [BUUCTF 2018]Online Tool
    原理绕过escapeshellarg+escapeshellcmd函数nmap写入木马解题过程学习一下两个函数使用时的绕过思路参考文章:https://blog.csdn.net/lzu_lfl/article/details/130780808https://blog.51cto.com/u_15400016/4295953--这个文章的payload的左括号不对......
  • 【LCD驱动】VK1C21系列是防静电/抗干扰LCD液晶显示驱动芯片,可驱动32*4/18*4/14*4点
    产品型号:VK1C21A/B产品品牌:永嘉微电/VINKA封装形式:SSOP48/LQFP48可定制裸片:DICE(COB邦定片);COG(邦定玻璃用)产品年份:新年份原厂,工程服务,技术支持! 概述:VK1C21A/B是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过......
  • Solution-AGC018F
    对于全幺模阵刻画限制的一般方法。先写出限制:\(\sum_{v\in\text{sub}(u)}a_v=\{1,-1\}\)。嘛虽然你可以通过奇偶性(大概)把限制改成\(|\sum_{v\insub(u)}a_u|\leq1\),但是我们还是别这么做吧。考虑转化一下限制。设\(a_u\)表示\(u\)在第一棵树上的子树和,\(b_u\)表示\(u......
  • 文本分类 2018-2020 文献分析
    文本分类转自https://mp.weixin.qq.com/s/0hKzedHimfPtWgzEk49YzAhttps://mp.weixin.qq.com/s/0hKzedHimfPtWgzEk49YzA ASurveyonTextClassification:FromShallowtoDeepLearning,2020[1]     2018Multi-grainedattentionnetworkforaspect-level......
  • [网鼎杯 2018]Fakebook
    原理sql注入关键字绕过反序列化ssrf解题过程进入靶场,有登录按钮和注册按钮。查看页面原代码,对应是login.php和join.php,先注册一个看看有什么blog随便输发现会报错,其他也是,那试试输入一个网站呢?输入www.baidu.com发现可以进入这个界面,先看看原代码吧发现这个按钮的地......
  • CF1856B Good Arrays
    题意简述:给定一个序列\(a\),我们定义一个序列\(b\)是好的当且仅当对于\(1\dotsn\)内的每一个\(i\),\(a_i\neqb_i\)且\(\sum_{i=1}^na_i=\sum_{i=1}^nb_i\)(\(a_i\),\(b_i\)均为正整数)。现在有\(T\)组数据,每组数据给定\(n\)和序列\(a\),判断是否存在一个合法的序......
  • CF1857B Maximum Rounding
    题目大意给定一个自然数\(n\),可以对任意一位进行四舍五入,可以进行任意次,求能得到的最大数。\(n\)的长度不超过\(2\times10^5\),没有前导零。solution首先,选择四舍五入的数一定\(\ge5\),不然对答案没有贡献。其次,高位的数可能会受到低位的进位,这启发我们从低位向高位考虑......
  • [TJOI2018] 游园会题解
    [TJOI2018]游园会(dp套dp)目录[TJOI2018]游园会(dp套dp)前言:题目简化:解题思路:较为简单的一步:较为困难的步骤思路总结代码呈现:注释/后记:前言:这是和dp套dp的初遇,这不得好好了解一下。题目简化:先把题目进行简化,就是要构造字符串,对于$len\in[0,k]$满足以下条件:只包含......