1. PolarDB架构
PolarDB架构图
PolarDB架构,从上往下分为几层:
• ECS:部署应用机器,相当于是client层。
• Proxy:代理层,做读写分离。
• DB的计算层:因为PolarDB计算、存储分离,所以分为计算层和存储层,此层是DB的计算层,拥有很多实例,一个实例是一个主节点,最多支持15个只读节点。
• RDMA:高速互联网络,计算层和存储层通过RDMA连接。
• Data Chunk Server:最底层,分布式存储。
PolarDB读写请求都是通过主节点下发,读请求只通过读节点下发。PolarDB的计算节点都是无状态的主节点和只读节点,数据文件存在底层的分布式文件系统中,各个计算节点同步时,只需要同步源数据信息。
总的来说,PolarDB的主要特性是:一写多读、计算与存储分离、读写分离、高速链路互联、共享分布式存储、数据多副本Parallel-Raft协议。
2. PolarDB多主架构
1) 基础功能
• 支持不同数据库在不同计算节点并发写入
• 目前最多支持32个节点同时写入
• 支持数据库跨节点动态调度,秒级切换
• 计算节点故障秒级完成切换
2) 应用场景
• SaaS应用:满足高并发性能需求,实现租户间负载均衡
• 游戏:更好的性能和扩展能力,支持世界服架构
• 电商:满足高并发读写需求
3. 可用性管理
PolarDB同时支持多节点架构和多可用区架构。
• 多节点架构:可以挂多个主节点、只读节点和计算层到同一个分布式存储上。如果主节点出现故障,会自动选择一个只读节点升级为新的主节点。对用户而言,体验就是感受到了20-30s的故障。
• 多可用区架构:如果整个可用区都发生故障时,可以切换到备可用区,可实现跨区容灾。
4. GDN全球数据库网络
全球数据库GDN
• GDN:分布在全球地域的多个PolarDB数据库集群组成的一张网络,所有集群数据可以保持同步,可以实现全球容灾。
• 主集群:只有一个集群有读写权限,就是主集群。
• 从集群:从GDN中主机群同步数据的从属集群,一类是读服务,一类是写转发服务。
优势特点:
• 如果业务有海外部署的需求,从集群就可以提供就近服务。
• 整个PolarDB的GDN通过proxy来管理,用户不用担心自己的client向那个集群写,内核会自动判断当前的集群属于主集群还是从集群;是主集群则直接写入,是从集群则内核帮助转发。
• 主集群可做跨国业务迁移。
5. PolarDB的访问方式
• 访问模式:可读可写、只读。
• 访问地址:集群地址、主地址。
• 访问点:
数据库的访问入口,也可以称为接入点。
每个集群提供多个访问点,每个访问点可以连接一个或者多个实际的物理节点。
新购买的PolarDB会提供两个访问点,分别叫主地址和集群地址。
• 主地址:是主节点的访问点,如果发生故障切换后,系统会把访问点自动指向新的主节点。
• 集群地址:是在集群地址上,会自动整合集群下的多个节点,对外提供一个统一的读写地址。集群地址是通过数据库代理去访问,具有自动弹性、读写分离、负载均衡、一致性协调能力等。
• 新购的只读节点,会自动加入到集群中,可以根据业务的需求去创建最多三个自定义的集群地址。
• 在自定义的集群地址上可以指定任意多个只读节点,可以选择子集去定义集群地址。
6. 数据库代理
PolarDB数据库代理是位于数据库和应用程序之间的网络代理服务,用于代理应用程序访问数据库时的所有请求,具有高可用、高性能、可运维、简单易用等特点,支持自动读写分离、负载均衡、一致性级别、连接池等高级功能。用户可以连接PolarDB集群地址使用数据库代理的各项功能。
连接池是较为常见的一个需求,大多数用户想要解决连接数过多或者短连接业务频繁建立新连接类的业务,有可能导致实例连接负载过高的问题,连接池可以很好的隔离解决。
一致性是访问点的属性,主要是用户在主节点和只读节点上数据的一致性。三个选项分别是:最终一致性、会话一致性、强一致性。默认为最终一致性,在创建时或者控制台中都可以进行配置。