写点什么

三、应用高可用之数据设计

  • 2022 年 5 月 03 日
  • 本文字数:1525 字

    阅读完需:约 5 分钟

三、应用高可用之数据设计

一个应用系统的高可用设计在很大程度上依赖数据的高可用,中间层的服务一般是无状态的,很容易通过弹性伸缩等机制实现高可用。但数据是有状态的,扩展起来相对要复杂得多,涉及数据在线迁移、数据实时同步等技术难题。

1.数据分布式

数据库的高可用一般分为主备数据库和分布式数据库。


主备数据库(或者多副本数据库)的目标是实现数据的可用及安全,在主数据库出现软硬件故障时能够及时切换到备数据库以确保业务的正常运行,同时确保数据不丢失。金融级的数据库一般采用 3 个以上副本的数据库。在运行过程中,主备库实时进行数据同步,根据数据的安全等级不同,又分为强一致同步和异步同步。


分布式数据库中间件实现分库分表、平滑扩容、读写分离等技术,以此达到底层物理库的横向扩展,解决应用规模越来越大时数据库的吞吐量和容量的瓶颈。单机数据库即使能力再强,也存在性能的天花板,而分布式数据库通过添加物理资源的方式,让数据库的性能得以准线性的增长。

2.异构数据

企业建设 IT 系统的目标就是加工处理数据,以便让数据更好地为业务服务。数据的表现形式有很多,有结构化数据库、非结构文件、消息数据、缓存数据、音视频流式数据等不同的数据种类。


一个完整的业务场景,往往不只包含单一的数据源,而需要在不同的异构数据源之间进行数据的集成、加工处理和流转,应根据不同场景综合考虑技术储备和实现成本,选择最合适的数据库技术。


异构数据源之间的数据集成及同步,是设计高可用应用系统所必不可少的要素。应根据数据同步的场景,如离线同步/在线同步、全量同步/增量同步、实时同步/定时同步等,选择合适的同步技术及方案。

3.数据容灾

数据容灾是为了在灾难(地震、强台风、火灾、水灾等)以及人为重大误操作等情况下导致主数据中心机房被毁坏时,确保关键数据在一定时间内可恢复,让业务的损失降到可接受的程度。


根据对应用的支撑形态,数据容灾分为数据灾备和数据多活两种类型。数据灾备是指将生产数据定期或准实时备份到异地的数据系统,以保护数据安全和提高数据的持续可用性。数据灾备是冷备模式的,即正常业务模式下,灾备中心的数据不提供业务支撑。数据多活是指异地数据在数据灾备的基础上提供业务支撑,这样就提高了灾备中心资源的有效利用。根据数据灾备及数据多活的不同模式,数据的部署形态分为以下 5 种:

  • A-S 模式:即主备模式。只有主中心提供正常的数据服务,备中心仅作数据冷备,当灾难发生时,主中心才会切换到备中心。这种架构最简单,但备中心的资源闲置问题较为突出。

  • A-Q 模式:即读写分离模式。对于数据实时性要求不高的读场景,分发到备中心的数据提供只读服务,以此来分担主中心数据库的压力。

  • A-A’模式:即非对称运行模式。主备中心提供业务读写服务,但是两者承接的业务是不同的,为避免数据交叉覆盖冲突,主备两边的业务数据必须能够完全分隔。备中心只承接部分非核心业务,主备之间数据双向同步。

  • A-A 模式:即对称运行模式。主备中心提供完全相同的业务读写服务,通过前端的流量入口来标识区分具体某一次请求该路由到哪一个数据中心,如根据用户的属地区分南北两个中心,不同用户之间数据不存在交叉覆盖的问题,主备之间数据双向同步。

  • C-U 模式:即单元化部署模式(Centre-Unit)。一般是多个中心的超大规模应用,大型电商应用系统就采用单元化部署,分为中心节点和单元节点,根据用户的注册地点流量分发路由到就近的单元节点,单元节点内完成绝大部分的业务闭环,少数中心化服务(如库存相关服务)必须请求中心节点。所有的单元节点与中心节点保持数据单向同步,一旦某个单元节点出现故障,其流量将由中心节点承接,待单元节点恢复且数据回流完成后,流量再由中心节点切换回单元节点。中心节点内部也采用同城主备模式,以确保中心节点自身的高可用。


发布于: 刚刚阅读数: 4
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
三、应用高可用之数据设计_5月月更_穿过生命散发芬芳_InfoQ写作社区