开发者社区> 小伟学长> 正文

学习笔记(三) | 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云服务器后如何登录?场景不同,大概有三种登录方式:
9406 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
12980 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20059 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
33068 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18348 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
34854 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24932 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
17079 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11786 0
+关注
4
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载