NoSQL数据库Gauss NoSQL、文档数据库服务DDS
完整数据库解决方案:分布式数据库中间件DDM、数据库和应用迁移UGO、数据复制服务DRS、数据仓库服务DWS、数据管理服务DAS、数据库安全服务DBSS
服务高可用
利用RDS主备模式,实现数据库高可用;取决于不同引擎在秒级别可以实现故障切换;主备模式避免维护期间业务中断;应用程序需要能够优雅处理主备切换
备份的特点:备份存放于OBS,可恢复到本地客户数据中心;支持自动Binlog备份和手动全量备份;Binlog备份可以指定恢复到时间点
使用只读副本实现水平扩展:动态副本增删;取决于不同引擎,支持5~10副本;支持同区域内跨可用区复制
非关系型数据库特点:每条数据都是一个结构文档;表格中的记录之间没有逻辑关系;擅长对完整值进行哈希定位而非复杂查询
文档数据库服务特点:完全兼容MongoDB协议;实例类型灵活多样;弹性伸缩;可视化管理;多层数据安全保障;运维工具丰富
文档数据库适用于业务系统除了要求高可用之外,还需要较高的可扩展性,建议选择集群;对于需要保证高可用的中小型业务系统,建议选择副本集;成本较低,适合非企业核心数据存储的场景
文档数据库架构:具有高性能和异步数据写入功能,特定场景下可达到内存数据库的处理能力;应对业务增长快,数据量大的内容管理系统,具备较好的扩展能力;文档数据库服务的副本集模式采用三节点Replica Set的高可用架构,Primary节点和Secordary节点提供服务,两个节点分别拥有独立内网地址,配合Driver实现读取压力分配
云数据库GaussDB NoSQL优势:兼容多款NoSQL接口、即开即用、便捷运维、网络安全
云数据库采用计算存储分离架构,集群下多个数据库实例访问下层共享分布式存储,整体存在计算故障和存储故障两类
GaussDB for Mongo具有主节点、备节点;快速灵活添加计算节点;数据恢复快;扩容期间性能稳定,不影响业务体验
单实例数据库结构的缺点:存储扩展难,存储容量受限于SSD或云盘大小,磁盘带宽(IOPS)也有天花板,该限制更加突出;计算扩展难,运行在单机上,CPU/内存/网络处理能力受限于机器配置,大表的频繁操作,会导致数据库性能急剧下降,影响业务;可靠性较差,数据库故障影响面100%,RDS主备模式可以部分缓解问题。
单实例可以scale up垂直扩展,优势简单,不需要协同;劣势很容易碰到天花板。单实例可以scale out水平扩展,优势可使用简单设备,实现几乎无限扩展,同时提高可用性;劣势需要有协调技术。使用只读副本实现水平扩展
分布式中间件DDM,兼容MySQL协议,专注于解决数据库分布式扩展问题;DDM使用华为关系型数据库(RDS)作为存储引擎,具备自动部署、分库分表、弹性伸缩、高可用等全生命周期运维管控能力;三个角色(数据库管理员、开发者、最终用户)、管理控制台(实例管理、分片变更、逻辑库管理、备份恢复、慢SQL管理、MySQL管理)、数据库分片
DDM节点stateless支持水平或垂直扩展;RDS层水平或垂直扩展;垂直拆分可以支撑业务持续增长:核心业务数据快速增长;按领域拆分不同的数据库;DDM可以做到让拆库对业务系统无感知。水平拆分可支撑业务爆发性增长:一般发生在垂直拆分后;因地制宜,根据容量确定拆分方法分散风险,影响面1/N
DDM提供·14个拆分函数,供客户选择,建议保持数据内聚性;可以按用户ID,也可以按时间范围
DDM读写分离使用于读多写少的业务。充分利用RDS只读实例能力;当水平拆分后,依然存在较大查询压力,则可开启读写分离能力;业务系统不需要改造;存在亚秒级数据延迟,适用于时效性不敏感的查询场景
DRS数据复制服务致力于提供数据零停机的迁移上云体验;最小权限设计:无需源数据库、目标数据库节点部署程序、独立运行,租户隔离、最小IP资源,只需IP访问权限,无需增加网段;可靠性设计;连接异常会自动重试直到任务恢复、具备断点续传能力、DRS迁移实例所在虚拟机故障业务自动切换新虚拟机,保证迁移任务正常
DRS实时迁移:采用增量迁移技术,能够最大限度允许迁移过程中业务对外服务,有效将业务系统中断时间和业务影响最小化。
同构数据库DRS实时同步常用场景:实时分析、报表系统、数仓环境。特点:实时同步功能聚焦于表和数据,并满足多种灵活性的需求。
异构数据库UGO专注于异构数据库结构迁移和应用SQL语法转换的专业云服务Database and Application Migration
由于数据存在时间维度,数据访问的热度直接决定着云架构和选择不同的云服务
从数据库角度出发,有些数据需要运算获得,又需要频繁访问,如何设计缓存?
从架构图上,可以看出加缓存的节点和要求
大量内容分发可以缓存
CDN内容分发网络:2800+边缘节点,离用户更近;海量带宽,支持高并发吞吐量;完备的安全控制能力;CDN的工作逻辑图;静态内容和动态内容
缓存数据库复杂查询
分布式缓存服务DCS
提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力
云数据库Gauss(for Redis)
Gauss(for Redis)基于云原生分布式架构,实现计算与存储分离
提供了更多的企业级特性,如:资源独享,分片不限流;秒级弹性伸缩,轻松应对业务峰谷;一库替代多库,简化业务架构等
华为云GaussDB(for Redis)和开源Redis架构对比
缓存的第一种使用方式,直写模式应用写到数据库和Redis,只从缓存读数据;优点:实现逻辑简单、读取速度极快、数据一致性;劣势:缓存损坏重建压力大、所有的写操作有惩罚、缓存空间开销大
缓存的第二种使用方式,延迟载入,写数据直接入库,先从缓存读取,命中就完成,未命中的话去数据库读取,然后写入缓存;优点:对缓存可靠性无要求、仅缓存所需的数据;劣势:未命中有性能惩罚、可能存在脏数据
如何处理脏数据和数据不一致?
哪怕一秒钟的缓存TTL都可能给成本、性能带来根本变化