暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

OceanBase系统架构数据链路概述

2024-01-01
185

OceanBase 数据链路提供了从客户端到数据库端的最佳数据访问能力,对用户屏蔽 OceanBase 分布式数据库的感知,提供分布式数据库的可扩展、高性能和高可用的服务能力。数据链路包含两个部分:数据库代理和数据库驱动。

数据库代理

OceanBase 数据库代理 ODP(OceanBase Database Proxy,又称 OBProxy)是 OceanBase 专用的代理服务。 OceanBase 数据库中的数据会以多副本的形式存放在各个 OBServer 上,ODP 则负责接收用户的 SQL 请求,结合请求中涉及数据的分布,将用户 SQL 请求转发到最佳 OBServer 上,在 OBServer 执行完成后接受结果并将执行结果返回给用户。

作为 OceanBase 数据库的关键组件,ODP 具有以下特性:

  • 高性能转发

    ODP 完整兼容 MySQL 协议,并支持 OceanBase 自研协议,采用多线程异步框架和透明流式转发的设计,保证了数据的高性能转发,同时确保了自身对机器资源的最小消耗。

  • 最佳路由

    ODP 会充分考虑用户请求涉及的副本位置、用户配置的读写分离路由策略、OceanBase 多地部署的最优链路,以及 OceanBase 各机器的状态及负载情况,将用户的请求路由到最佳的 OBServer,最大程度的保证了 OceanBase 整体的高性能运转。

  • 连接管理

    针对一个客户端的物理连接,ODP 维持自身到后端多个 OBServer 的连接,采用基于版本号的增量同步方案维持了每个 OBServer 连接的会话状态,保证了客户端高效访问各个 OBServer。

  • 专有协议

    ODP 与 OBServer 默认采用了 OceanBase 专有协议,如:增加报文的 CRC 校验来保证 OBServer 链路的正确性,增强传输协议以支持 Oracle 兼容需要的数据类型和交互模型。

  • 易运维

    ODP 本身无状态,支持无限水平扩展,支持同时访问多个 OceanBase 集群。可以通过丰富的内部命令实现对自身状态的实时监控,提供极大的运维便利性。

有关数据库代理的详细内容,请参见 数据库代理

数据库驱动

数据库驱动程序由数据库厂商或者其他一些专门开发数据库驱动程序的厂商提供,它们提供给外部应用程序一个访问该数据库的接口。用户可以直接使用 MySQL 官方提供的 Connector 来使用 OceanBase 数据库。

OceanBase 数据库支持各类语言的数据库驱动,主要有如下产品:

  • OceanBase Connector/C

    兼容 ODBC 接口,支持 OceanBase MySQL 和 OceanBase Oracle 模式的 C 语言驱动。

    有关 OceanBase Connector/C 的详细介绍,请参见 OceanBase Connector/C

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论