开发者学堂课程【关系型数据库 ACP 认证课程:【视频】-RDS-云关系行数据库的解析与实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/927/detail/14620
【视频】PolarDB-云原生关系型数据库的解析与实践
内容介绍:
一、 PolarDB 的初步介绍
二、 PolarDB 的架构原理
三、 PolarDB 的使用及相关操作
一、 PolarDB 的初步介绍
1、PolarDB 基本概念
(1)什么是PolarDB
PolarDB 是阿里巴巴自研的新一代云原生关系型数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。对比传统单机型数据库看PolarDB有哪些优势:
①单机数据库容量瓶颈。
单机数据库的容量有上限; PolarDB 由于底层使用分式存储,并且利用了一个资源池,从而可以轻松扩展。
②单机数据库扩展困难。
传统的关系型单机数据库的硬件是已确定的,无法动态的增加CPU、内存磁盘等资源;PolarDB 可以随着右峰值进行任意的弹性变配。
③数据库使用成本过高。
传统的关系型单机数据库需要另外的购买机器,布署数据库服务日常使用过程中还需要专业的运为D 编去维护;如做动态扩展、备份升级、审计等,PolarDB 都是即开即用的。
④分布式数据库应用开发繁琐。
传统数据库遇到瓶颈后,一般采用分户分表或分布式数据库,就会引入分布数,开发难度相对较高;PolarDB 是面向于延伸研发的数据库,它一是通过共享存储来解决不扩展的问题,二是计算存储分离的架构解决了 CPU 以及存储容量扩展的问题。
(2)为什么选择PolarDB
PolarDB 的六大特性:
①简单易用
PolarDB 100%兼容 MySQL 5.6/5.7/8.0, PostgreSQL 11,高度兼容 Oracle。
②降低成本
采用存储和计算分离的架构,所有计算节点共享一份数据,扩展只读节点只需支付计算的费用,不需要支付存储的费用。同时存储空间不需要手动配置,可以根据数据量去自动伸缩,用户只需要为实际的数据库容量付费即可。
③极致性能
PolarDB 的数据库内核是延伸于阿里巴巴集团的阿里 cecle ,并做了一些深度的优化,尤其是延伸方面,包括用了物理复制、 RDNA 高速网络、分布式共享存储等技术。
④海量存储
⑤安全可靠
PolarDB 的核心技术是通过使用物理复制以避免传统的基于Binlog的主从义务复制带来的备课不一致的缺陷。
⑥快速弹性
提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。
PolarDB 的升降级、增减节点均为五分钟即可生效,其中运用了许多云原生的技术,包括容器虚顶化、分布式快存储等技术。
(3)PolarDB 的产品系列
①集群版
集群版是 PolarDB MySQL 主推的版本,支持所有的功能,也推荐直接在生产环境使用。使用计算与存储分离的架构,计算层的数据库节点可以从2个动态扩展到最多16个。
②单节点
单节点是默认采用突发性能型规格的版本,共享计算资源池提升资源利用率,单节点架构也无需 Proxy 代理节省资源成本。由于只有单节点,且省掉了 Proxy 代理等资源,因此不需要日日同步。其特点是高性价比、个人用户测试和学习的最佳选择,同时如果是创企也可以用其做入门级的产品。
③历史库
历史库是一个单独推出的具有较高压缩率的产品系列,使用了 X-Engine 作为默认存储引擎,提供了超大存储容量,满足了像监控系统日志等归档数据库存储低成本的要求。其特点是写入数据量大,但是读频次较低。
④多主架构
多主架构是 PolarDB 新推出的功能, MySQL 引擎的一写多读架构在一些极端场景下写信依旧有瓶颈,这个时候就可以选择多主架构。多主主推的是多租户的模式,支持不同数据库在不同计算节点并发写入,目前最多支持32个节点同时写入。支持数据库跨节点动态调度,秒级切换,计算节点故障秒级完成切换。
(4)关于 PolarDB 的几个基本概念
①集群
PolarDB 采用集群架构,一个集群包含一个主节点和多个读节点,最多16个节点,即一个主节点和15个只读节点。
②地域
地域是指物理的数据中心。一般情况下,PolarDB 集群应该和 ECS 实例位于同一地域,以实现最高的访问性能。
③可用区
可用区是指在某个地域内拥有独立电力和网络的物理区域。同一区域的不同可用区之间没有实质性区别。
④规格
每个节点的资源配置,比如2核4GB, PolarDB 的所有节点规格均为独享型节点,节点独占所分配到的 CPU 、内存、存储和 I/O 资源,而非与其他节点共享资源。规格在购买时是指定的,但是购买后在运行时可以做自由的伸缩。
(5)PolarDB核心概念
一部分架构上的,一部分使用上的。
主要架构上的核心概念:
①集群:读写节点,只读节点
②GDN:主集群,从集群
③地址:访问点,主地址,集群地址
④一致性:最终一致性,会话一致性,全局一致性
⑤运行状态
⑥产品规格
2、PolarDB 应用场景
(1)教育直播电商场景:分钟弹性升降配,快速应对业务峰值
● 教育、直播、电商场景下业务有明显的峰值峰谷特征,课程报名、学生课外时间、双11大促等活动时的是业务高峰,系统需要通过扩容、加只读的方法进行升降配。
● PolarDB 支持分钟级弹性,解决了传统数据库的升配时间会随着存储量的大小、宿主机资源的情况而不断上升的问题。
● 弹性扩展:PolarDB 集群版支持分钟级的升配,最多可扩展至16个节点,快速弹升 IOPS 的能力。
● 澎湃性能: PolarDB 集群版通过引擎的优化 IOPS 能力的提升,提供高并发状态下优秀的数据写入能力,轻松应对业务峰值。
● 强一致性: PolarDB 集群版主节点和读节点之间采用物理复制的方式,读节点与主节点延迟大大降低,满足电商场景中买家卖家数据一致性读取需求。
(2)游戏场景:提供高读写性能,支持业务全球化部署
● 游戏的业务通常有一个上升期,比如新出一个游戏,业务就需要不断地开新服,来匹配用户量增长的需求,过一段时间游戏到稳定期,这样老游戏服的用户变少,游戏厂商也有新的经营策略,不再需要这些资源,这样就会进行合服操作。
游戏场景下需经常进行开服合服操作,业务峰值时可能需要支撑百万级玩家同时在线的高并发压力,更可能需要确保业务的增长进行海外部署。 PolarDB 的分钟级弹性和多租户多写就可以应对这样的需求。这也是游戏客户提出的需求,想要在原实力上做回档,由于有些游戏开发是很快的,经常一天就发一个版本,会发现一些错误、 bug 或运营的问题,就需要做回档。 PolarDB 的按时间点还原、可写快照等功能都可以很好的服务回档一类的需求。
● PolarDB 提供低延迟、高稳定、高性能的云服务,满足游戏业务需求。
● 良好的游戏体验: PolarDB 集群版提供高性能的读写能力,便于新开服以及应用弹性扩容,在游戏版本发布、服务端重启等场景可以大大缩短维护时间。
● 全球化部署: PolarDB 集群版支持全球数据库 GDN 功能,可以实现分布在全球不同地域的多个 PolarDB 集群间的数据保持同步,加之阿里云在海外有大量机房,助力游戏业务轻松出海部署。
● 高可靠的服务:数据采用三副本一致性存储,很好地保证了数据的可靠性。兼容 MySQL 各种生态和中间件开源工具,非常方便游戏历史战绩、游戏充值和运营活动的开展。
(3)金融保险场景:数据强一致性保证,满足金融级可靠性要求
● 金融、保险场景流量比较稳定,业务模型不会变,这个场景下对业务要求高可用和强一致性, PolarDB 采用存储和计算分离的架构,支持秒级的故障恢复、全局数据一致性和数据备份容灾等功能,充分满足金融级合规可靠性要求。
● 高可用和全球数据库网络:多可用区架构,在多个可用区内都有数据备份,为数据库提供容灾和备份。通过 GDN 全球数据库网络功能实现数据的异地灾备,跨地域实例可同时读写,且业务无需修改代码,即可直接从同城部署扩展到异地部署。
● 高安全:采用白名单、 VPC 网络、数据多副本存储等全方位的手段对数据库数据访问、存储、管理等各个环节提供安全保障。
● 一致性:集群版采用共享分布式存储的设计,彻底解决了主从( Master - Slave )异步复制所带来的备库数据非强一致性的问题。
(4)海量存储,支持上百 TB 级别数据
●业务的发展伴随着历史数据的飞速增长,单库能达到 TB 级别。像电商订单、聊天软件等,如钉钉,其历史聊天记录不能删去,但一般也不会查询。在这种情况下,传统数据库的存储和性能都碰到了瓶颈。 PolarDB 用存储和分离架构,单实例最高100TB存储,节点支持纵向扩展(升/降配节点)和横向扩展(增/减只读节点),快速应对业务增长。
● 历史库:提供历史库版本,相比 PolarDB 集群版最高可节省70%的存储空间,最大200TB存储空间,查询/写入性能衰减不超过10%满足大容量低成本且弱读写的历史数据存储需求。
● 快速弹性:采用存储和计算分离架构,使得数据库服务器的 CPU 、内存能够快速扩容,只需数分钟即可完成集群配置升降级。
● 无锁备份:利用底层分布式存储的快照技术,只需分钟级别即可完成对上 TB 数据量大小的数据库的备份,且整个备份过程不需要加锁,效率高,影响小。