从传统银行到互联网,异地多活难不难?(2)

简介: 从传统银行到互联网,异地多活难不难?(2)

三、建立多活保证高可用


3.1 目标


  • 满足监管要求
  • 满足全行业务连续性要求
  • 实现一键切换
  • 缩短计划内停机时间

我们可以看一下业界比较主流的灾备是怎么做的?最主流的灾备技术是两地三中心,数据中心A和数据中心B在同城作为生产级的机房,当用户访问的时候随机访问到数据中心A或B。


之所以随便访问,因为A和B会同步做数据复制,所以两边的数据是完全一样的。但是因为是同步复制的,所以只能在同城去做两个数据中心,否则太远的话同步复制的延时会太长。


image.png


在两地三中心的概念里,一定会要求这两个生产级的数据中心是必须在同一个城市,或者在距离很近的另外一个城市也可以,但是距离是有要求的,一般要求在60公里之内,比如雄安和北京城区。异地备份数据中心通过异步数据复制来实现,银行两地三中心的特点是异地备份数据中心一般不作为关键应用宿主地,某些情况下是完全冷备,有些机构的做法是将统计分析和非关键的内部管理系统放到灾备机房。对于关键业务应用异地灾备中心不对外服务,所以用户不会访问到异地的点。原因是因为数据从生产级数据中心到异地的节点是异步去复制,所以整个有延时。这个模式在灾难到来的情况下可能会出现冷切换的问题,不能很顺畅的切换,虽然在平时的演练中,已经模拟了生产切换,但往往是众多情况中比较乐观的设定。

另外一种模式为异地多活模式,也是目前正在兴起的一种模式,对于某些大型银行的核心关键应用已经在此模式下进行了成功验证。异地多活首先是要做到同城双活或者同城多活,就是数据在同城网络环境下进行高速备份,也可以在做楼宇级同步,一般在10ms类的数据差异。异地多活需要多个跨地域的数据中心。异地多活是跨地域的,而且距离一定要做到1000公里以上的范围,其实在中国范围内全国城市都可以去部署了。降低数据同步量,同步服务根据一定业务键通过Zookeeper路由到对应的主数据中心,备数据中心可以通过旁路报文或者异步数据同步方式补全。

 

2.3.2 互联网行业多活架构

最近十年,互联网发生了翻天覆地的变化,现在的互联网服务相比于银行系统有以下几个特点,访问量大,并发量大,非强一直要求,RTO和RCO要求都非常高,低成本。在这些要求的前提下,产生了一套适用于互联网行业的多活架构。


      互联网的多活架构通常是通常双活双中心+混合云的方式,基于各种自研组件,开源组件和MySQL数据库来实现多活。

 

下图是多活双中心示意图。


image.png


下图是多活双中心与公有云示意图。



image.png


 

双中心主要实现业务架构的双活,任意一个机房挂掉,可以快速的切换到另外一个机房。混合云的架构主要为机房提供快速扩容的弹性能力。

      在实践这个架构的时候,有几个关键点。

1、单元化

2、前端路由

3、数据路由

4、数据同步


单元化

单元化是多活架构的基石。单元化通常有几个维度,用户维护,功能维度,用户与功能的混合模式,作为电商,核心业务只有一个,就是购物流程。我们一定要确保购物流程的高可用。因此购物流程功能肯定不能拆分成更细的单元,如果拆分后,那么购物流程的一个单元不能用,整个购物流程就不通了。咱的双活也就失败了。所以我们会选择用户维度的单元化。


前端路由

前端路由的主要目的是解决如何快速的将用户切换到正常服务的机房,传统是通过DNS来切换,但是这个切换受限于DNS缓存的生效周期,并且最多只能做到地区,很难做到细粒度的路由控制。现在常用的有两种方案。一、通过中间件的方式,所有用户进入同一的用户端路由中间件,有中间件去决定用户走什么路由。优点是控制力非常好,缺点是如果用户量和请求量太大,中间件存在性能瓶颈。二、通过APP端路由的方式,下发路由策略到APP端,由APP端完成用户路由,选择正确的机房。


数据路由

虽然我们有一层前端路由,但是由于现在入口非常多,H5,APP,PC,小程序等等。 我们很难将所有的入口都能做到100%走路由,甚至还有一部分路程是在后台或者service层自己发起的。那么问题来了,这部分没有经过前端路由的用户数据是否会出现异常?答案肯定会的。


相关文章
|
4月前
|
消息中间件 NoSQL Redis
高可靠微服务消息设计:Outbox模式、延迟队列与Watermill集成实践
构建高可靠微服务,事件丢失和延迟任务一直是难题?本文带你从实战角度掌握 Outbox模式、延迟队列 及 Watermill+Redis Stream 集成方案,教你用Go打造可靠、可观测、毫秒级响应的事件驱动系统。
386 2
|
机器人 开发工具 Web App开发
干货满满!解密阿里云RPA (机器人流程自动化)的产品架构和商业化发展
阿里云RPA,作为阿里云自研8年的技术,在资本的热捧下,逐渐从幕后来到台前,成为企业服务市场的黑马。本文将从产品上全面剖析,阿里云RPA这款产品的现阶段情况,同时简单谈谈阿里云RPA的商业化进展。
9204 0
干货满满!解密阿里云RPA (机器人流程自动化)的产品架构和商业化发展
|
11月前
|
Ubuntu Linux 开发工具
怎么用PD虚拟机在Mac上如何运行Linux 操作指南来了!
怎么用PD虚拟机在Mac上运行Linux?只需五步:下载镜像 → 启动PD创建虚拟机 → 导入Linux系统 → 安装Parallels Tools → 开启共享与剪贴板功能,立刻开启Linux之旅!**整个过程图形化、无需手动配置引导、适合新手又不失灵活性,特别适合Mac用户用于开发、测试、学习和工作。 希望这篇《怎么用PD虚拟机在Mac上如何运行Linux 操作指南来了!》能帮你成功在Mac中打造一个完整好用的Linux环境,轻松跨平台办公、学习与开发!
|
并行计算 算法 Java
ForkJoin并行计算神器(史上最全图文详解)
本文详细介绍ForkJoin框架的设计原理、工作窃取算法及使用案例,帮助你更好地利用多处理器并行运算能力提升应用性能。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
ForkJoin并行计算神器(史上最全图文详解)
|
存储 SQL 分布式计算
大数据时代的引擎:大数据架构随记
大数据架构通常分为四层:数据采集层、数据存储层、数据计算层和数据应用层。数据采集层负责从各种源采集、清洗和转换数据,常用技术包括Flume、Sqoop和Logstash+Filebeat。数据存储层管理数据的持久性和组织,常用技术有Hadoop HDFS、HBase和Elasticsearch。数据计算层处理大规模数据集,支持离线和在线计算,如Spark SQL、Flink等。数据应用层将结果可视化或提供给第三方应用,常用工具为Tableau、Zeppelin和Superset。
6520 8
|
域名解析 负载均衡 网络协议
DNS重定向
【8月更文挑战第16天】
1929 1
|
Rust 监控 Kubernetes
一文读懂基于 eBPF 自动化可观测平台 - DeepFlow
Hello folks,我是 Luga,今天我们来聊一下云原生生态核心技术——基于 eBPF 全链路自动化可观测性。当我们真正融入到云原生生态场景中时,我们将会深切地体会到:“全链路可观测性”的价值所在~
3783 1
一文读懂基于 eBPF 自动化可观测平台 - DeepFlow
|
Rust 算法 安全
Rust常用加密算法
Rust常用加密算法
541 0
|
机器学习/深度学习 人工智能 监控
一文看懂“知识蒸馏”技术
一文看懂“知识蒸馏”技术
2993 1