学习笔记(三) | OceanBase

简介: Oceanbase数据库工程师认证学习笔记

(四)OceanBase集群技术架构

第一节:Paxos协议与负载均衡

  1. 数据分区与分区副本:

(1)分区:(OceanBase数据架构基本单元)

可以将一个表水平拆分为若干分区,每个分区包含表的若干记录,根据行数据到分区的映射关系不同,分为:hash分区、List分区(按列表)、range分区(按范围);每一个分区还可用不同的维度再分若干分区,叫二级分区

(2)副本:

为了具备安全和高可用性的服务,每个分区的数据在物理上存储多份,每一份叫做分区的一个副本;

副本支持迁移、复制、增删、类型转换等管理操作。

注:每个副本中由一个主副本和多个从副本构成,每个Zone只会包含一个分区的副本

  1. 副本构成:记录事务日志、存储在内存中的增量数据(MemTable)、硬盘上的静态数据(SSTable)

副本分类:

全能型副本:包含事务日志、MemTrable、SSTable等数据,参与投票。

日志型副本:包含日志副本,没有MemTable、SSTable,参与投票

只读型副本:包含完整的日志、MemTable、SSTable等,不属于paxos组,但是listener

注:一个分区在一个Zone中最多有一个全功能或日志型副本;只读型副本在同一个Zone中可有多个

  1. 多副本一致性协议

(1)以分区为单位组建Paxos协议组:

每个分区都有多个副本,自动组建paxos组,在分区级用多副本保证数据可靠性和服务高可用,数据管理更加灵活方便。

(2)自动选举主副本:

OB自动生成多份副本,多副本自动选举主副本,主副本提供服务。
  1. 自动负载均衡与智能路由:

(1)自动负载均衡:

主副本均匀打散到各个服务器中,使得各个服务器均能承载业务流量。

(2)每台OB Server 相互独立:

每台OB Server均可以独立执行SQL,如果应用需要访问的数据在不同机器上,OB Server自动将请求路由放至数据所在的机器,对业务完全透明。
  1. 通过多副本同步Redo Log确保数据持久性

(1)Paxos组成员通过Redo-Log的多数派强同步,确保数据的持久性。

(2)Leader无需等待所有Follower的反馈,多数派完成同步即可应用反馈成功

  1. OB Proxy为应用提供智能路由服务,应用透明访问:

(1)高效路由转发

对SQL做基础解析,确定对应Leader所在的机器

反向代理,将请求路由转发至对应Leader;无法确定位置随机选定OB Server

轻量SQL解析+快速转发,保证高性能

注:单OB Proxy每秒转发百万次请求

(2)“非”计算节点,无状态

每个OB Proxy是一个“无状态”的服务进程,不做数据持久化,对部署位置无要求

OB Proxy不参与数据库引擎的计算任务,不参与事务处理

使用多个OB Proxy时较复杂,则可通过在OB Proxy服务器之前创建一个由FS/SLB组成的负载均衡集群;

无需独立服务器,可与OB Server共用一台服务器或可将OB Proxy部署到应用服务器中

OB Proxy可以与应用服务器部署到一起,可对延时有较好控制;也可以不同服务器

  1. 设置Primary Zone,将业务汇聚到特定Zone:

(1)配置一:(z1 , z2 , z3)

意义:Zone_1=Zone_2=Zone_3

主副本(Leader)均匀分布在各机器;

适合批处理场景,希望尽快跑完,不关注某个sql的执行时间,期望让整体任务尽快完成

(2)配置二:(z1 ; z2 ; z3)

意义:Zone_1 > Zone_2 > Zone_3

主副本(Leader)只在Zone1存在,Zone2和Zone3是从副本;

适合对时延敏感的在线处理业务有,业务量不大,不超过一台机器的处理能力,可尽量避免跨服务器时间,从而降低时延。

(3)配置三:(z1 , z2 ; z3)

意义:(Zone_1 = Zone_2)>Zone_3

主副本(Leader)均匀分布在Zone1和Zone2,Zone3是从副本;

适合三地五中心方案,将业务汇聚到距离较近的城市,距离较远城市只承担从副本角色

注:通过为不同租户设置不同的Primary Zone,可以将业务流量集中到若干Zone中,减少跨Zone及服务器的操作。ZoneList,逗号两侧优先级相同,分号左侧优先级高于右侧

  1. PrimaryZone有租户、数据库和表不同的级别:

(1)如果无特殊指定,自动继承上级对象的primary_zone:database继承租户的primary_zone设置,table继承database的primary_zone设置

(2)database和table可以指定各自的primary_zone,不必和上一级对象的设置保持一致;提供更加灵活的负载均衡策略

部分解释:

多副本一致性协议:

(1)OceanBase的Paxos组以分区为单位,可以产生更详细力度的系统管控

(2)对于OBserver中的主从副本分配无需人工干预

(3)默认副本是均匀分布在Zone的各个Observer中

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
监控 安全 关系型数据库
OceanBase数据库完整版和商业版
OceanBase数据库完整版和商业版
57 1
|
28天前
|
SQL Oracle 关系型数据库
OceanBase 使用
OceanBase 使用
20 5
|
3月前
|
负载均衡 容灾 数据库
云数据库OceanBase
云数据库OceanBase的多机房部署是一种先进的部署方式,它将三个节点部署在三个不同的可用区,实现了跨可用区的容灾。这种方式可以有效提高系统的可用性和稳定性,防止因为单个机房的故障导致整个系统的瘫痪。
38 2
|
4月前
|
存储 SQL 负载均衡
OceanBase
OceanBase是一款由蚂蚁集团和阿里巴巴完全自主研发的分布式关系型数据库,自2010年创始以来,一直致力于提供高效、稳定、可靠的数据存储和管理解决方案。该数据库具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系型数据库、低成本等特点,已经成为了许多企业和组织在处理大规模数据时的首选。 OceanBase采用分布式架构,可以将数据分布在多个节点上,实现了数据的负载均衡和容错处理。同时,它还具备数据强一致性的特点,可以保证数据在多个节点上的一致性,避免了数据不一致的问题。这使得OceanBase成为了金融、电商等对数据一致性要求极高的领域的理想选择。 除了在蚂蚁集团和阿里巴
52 7
|
7月前
|
存储 数据库连接 数据库
OceanBase 的一个关键组件
OceanBase 的一个关键组件
45 1
|
7月前
|
运维 Shell Linux
OceanBase数据库集群中的obagent服务
OceanBase数据库集群中的obagent服务
87 1
|
7月前
|
关系型数据库 分布式数据库 数据库
PolarDB是一个由阿里巴巴开发的分布式数据库系统
PolarDB是一个由阿里巴巴开发的分布式数据库系统
72 1
|
9月前
|
SQL 分布式计算 数据库
OceanBase 是一种分布式数据库系统
OceanBase 是一种分布式数据库系统
133 3
|
存储 SQL IDE
OceanBase 架构和研发技巧 | 学习笔记
快速学习 OceanBase 架构和研发技巧
630 0
OceanBase 架构和研发技巧 | 学习笔记