郑州商品交易所:率先落地原生分布式数据库为期货交易保驾护航

OceanBase开发者社区
企业官方账号
2023-02-08 17:54:31

文 /郑州商品交易所执行经理 王立鹏;OceanBase解决方案架构师 李丹丹

来源 / 金融电子化


郑州商品交易所(以下简称“郑商所”)成立于 1990 年,是国务院批准成立的第一家期货市场试点单位,全国五家期货交易所之一。2021 年,郑商所成交量 25.81 亿手,位居全球交易所第 7 位。

通过 OceanBase 原生分布式数据库承载多套业务系统,郑商所成为国内首家完成生产环境分布式数据库上线的期货交易所,并基于全栈自主可控软硬件基础设施逐步完成 IT 架构分布式升级。“郑州商品交易所基于 OceanBase 的分布式创新应用实践”项目凭借行业领先性、创新性荣获“2022 第十三届金融科技应用创新奖”。

 

确定分布式数据库的选型目标

 

数据库作为信息社会的重要基础软件,承载着关系国计民生的重要数据,数据库的安全稳定极其重要。但长久以来,重要行业的核心数据库一直使用传统的集中式数据库,给数据安全带来了诸多挑战。

传统的集中式数据库架构支持一般业务系统时,可以做到高效、稳定和可靠,对金融服务的发展起着重要支撑作用,但并不能较好适应数字经济时代金融业的高并发、大流量、高可用的特征。随业务系统数量的快速增长,传统集中式数据库已经无法满足郑商所的多项需求。

综合考虑统筹成本、效率、资源等因素,以业务适配性、稳定性、高可用性为原则,郑商所深入研究分布式数据库架构在期货行业应用中广泛推广的可行性。

分布式数据库架构的核心理念按照一定维度将系统进行拆分,通过开放的结构,实现各业务模块松耦合,降低对底层硬件的依赖程度。然而,从传统集中式数据库转型分布式数据库,对业务开发和数据库运维都是很大的挑战,同时借助分布式数据库转型的机会如何提高容灾等级也是一大考验。

▋ 开发方面

分布式数据库在兼容性方面需要尽量兼容传统数据库(Oracle/MySQL)。业务从 Oracle/MySQL 迁移至分布式数据库时,需要尽可能地减少业务SQL改造,降低业务开发的学习和分析成本。兼容性还包含数据库访问驱动接口的兼容(如 JDBC、OCI 等)。除兼容复杂 SQL 外,性能方面也不能有问题。分布式数据库要能证明自己在复杂业务场景和复杂 SQL 方面的性能。

▋ 业务方面

在迁移至分布式数据库时,存量数据也需要迁移,且迁移过程必须在线,而且还要保证迁移数据的正确性和时效性。郑商所的期货交易业务覆盖全球,业务允许的割接停机时间非常短,业务的服务需求需要保证 SLA,数据库的可用性也必须做到在业务的 SLA 范围以内。

▋ 运维方面

分布式数据库多是 Shared-Nothing 架构,部署在普通的商用服务器上。相比传统小机存储,会给运维带来两个难题:一是数据库服务器的数量会比较大,二是数据库服务器的可用性没有小机那么高(即服务器故障率相对高一些)。因此,运维管理分布式数据库的工作量可能会增加,并且分布式数据库的故障率可能会相对比较高。这就对分布式数据库的运维提出更高的要求——规模化、自动化;也给分布式数据库的稳定性提出更高的要求——高可用、不丢数据;同时,分布式数据库的扩容缩容操作要求能在线进行,并且尽可能自动化。

 

用更低的改造成本,享受分布式架构的技术红利

 

OceanBase 分布式数据库提供的高度兼容 Oracle 语法的租户和配套迁移工具,可以便捷地将之前运行在 Oracle 上的系统业务,下移至基于 OceanBase 分布式数据库的开放平台上,并且提供与 Oracle 接近的功能和性能。

由于历史原因,郑商所大量的核心业务,如结算系统,使用了 OCCI 和 OCI 的接口驱动。OceanBase 分布式数据库不仅兼容常用的 JDBC、ODBC 驱动接口,还支持 OCCI 和 OCI 的接口驱动。这样,郑商所的大量 Oracle 应用系统只需要进行数据库接口驱动的替换,就可以顺利连接上 OceanBase 分布式数据库,进行业务的功能、非功能适配和联调工作。

 

图片

图1 Java 应用适配

图片


图2 核心 OCCI 应用适配

 

在数月的业务适配验证过程中,郑商所验证了 WEB 服务类和 C++ 语言模式下,不同的高性能应用系统的数据库迁移路线。在业务代码基本不做改动的前提下,通过分布式数据库自身语法兼容性的能力,结合分区、多租户等特性,郑商所的业务系统能够以更低的改造成本得到分布式架构的技术红利,降低迁移成本、迁移风险的同时,为更多业务系统的快速迁移适配打好基础。

 

在线迁移割接,保障相关业务系统平稳运行

 

郑商所现有的存量业务运行在不同版本的 Oracle 上,从十几年前的 Oracle 10G 版本,到新一些的业务使用 Oracle 19c,并且使用了大量的 Procedure、Package、Trigger、DBLink、Function、Struct 等 Oracle 特色的对象和用法。

OceanBase 的 Oracle 兼容模式租户不仅提供了 Oracle 语法兼容能力,同时产品也提供了一站式数据库迁移解决方案,包括迁移可行性评估、迁移成本评估、迁移性能评估、结构对象迁移、数据迁移、数据校验和反向增量同步保护等完整的在线迁移割接能力。OMS(OceanBase Migration Service,OceanBase 数据迁移工具)的数据校验功能,为郑商所提供源数据库和目标库的全列数据一致性校验能力,保障数据迁移质量。同时,反向链路的数据同步为无损回滚能力提供保证,确保业务的连续性不受影响,如下图所示。

 

图片


图3 一站式数据库迁移解决方案

 

在整个迁移过程中,OMS 支持在全量数据迁移过程中动态调整并发度,只会占用源端极少量的 CPU 和存储 I/O,对源端数据库和在线业务的影响极小,保证了在数据迁移过程中,期货交易系统的平稳运行。

郑商所在存量 Oracle 业务实时迁移同步过程中,总结出一整套适合期货行业业务系统的迁移最佳实践:

  • 源端(Oracle)和目标端(OceanBase)的 NTP 时钟需要同步,同时源端开启archivelog和补偿日志;

  • 迁移的表如果含有大字段(blob、clob等),需要单独创建同步链路,调整同步参数,每次同步 batch 数据行数不能太大,确保同步链路平稳顺畅;

  • 在实时同步数据过程中,不能同步外键、触发器等对象约束,需要在业务停写、源端(Oracle)与目标端(OceanBase)数据比对一致后,再创建(或者激活)目标端(OceanBase)的外键、触发器、sequence 等对象约束,避免可能产生的两边数据库不一致的问题。

 

高效运维,降低数据库总拥有成本

 

目前,微服务应用架构已经深入到了包括期货在内的各个金融行业。但同时,微服务架构也给底层数据库带来了诸多挑战:资源碎片化、管理复杂、资源浪费、扩展性差等。OceanBase 提供原生且强大的数据库资源整合方案,通过在一套分布式架构中实现的资源池化能力,能够在显著降低资源和管理成本同时,依然保持优秀的性能和可运维性。

郑商所基于 OceanBase 的多租户架构,打造了属于自己的 DBaaS 平台,将多个不同业务的数据库实例集中整合,不仅提升资源利用率,同时基于 Paxos 的多副本机制可以保证每个资源单元的高可用能力。通过这种用法,郑商所将内部大量不同业务链路的资源池化,为不同业务系统提供不同规格的实例,保证资源隔离性的同时大幅降低数据库总拥有成本(TCO)。

 

图片


图4 基于OceanBase多租户架构的DBaaS平台

 

郑商所使用 OceanBase 分布式数据库不仅作为传统集中式数据库的单一替代,将一个数据库存放不下的数据放至多个物理机存放,更是传统集中式数据库的升级,极大地提升数据库的可扩展性、可用性,以适应大数据时代的需求。

运维方面,郑商所有了 OceanBase 智能运维体系的全面保障护航,常见的 SQL 问题、诊断等可以自动实时分析,给出合理的应急优化建议。并且能够有效解决因宕机、网络抖动、大查询等造成影响生产连续性的问题,真正做到“先恢复,后排查分析”。

 

加强自主可控,为期货交易保驾护航

 

郑商所在行业内率先在生产系统上线分布式数据库 OceanBase 集群,验证了 WEB 服务类和 C++ 语言模式下的高性能应用系统的数据库迁移路线,并且充分利用分布式数据库的技术特点,提升数据库的容灾备份能力,并简化了变更升级操作流程,真正享受微服务架构带来的便利,提升系统连续服务能力。

运维方面,郑商所落地了基于多租户能力的 DBaaS 体系,即在一套数据库集群内,秒级交付 Oracle 或 MySQL 租户,快速响应业务对数据库的使用需求,有效为管理流程提效。

架构方面,郑商所借助 OceanBase 构建“主机房三副本+灾备只读备副本”的高可用部署架构,能够消除机房内单点故障,容灾能力大幅提升;同时,集群级别的"主备库"能够满足交易所的机房切换演练要求。

采用分布式数据库 OceanBase 的多个业务系统的成功上线,标志着郑商所在推进信息科技自主可控性方面迈上新的台阶。

结合此次项目经验积累,郑商所后期将依照各项业务发展特性,积极推进核心业务系统改造适配及试运行工作。未来,郑商所将会有更多的核心业务系统迁移至分布式数据库,有效提升信息科技自主可控能力,为期货交易所数字化转型与业务发展保驾护航。

...全文
646 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文档是一份针对全国大学生电子设计竞赛(NUEDC)的“保姆级”实战指导手册,系统涵盖赛题解析与方案库、模块化代码与电路实现、以及测试报告范例三大核心部分。手册深入剖析了电赛七大赛题类别及其命题规律,强调“基本要求+发挥部分”的结构特点、指标逐年收紧趋势及测量与控制复合型题目的增加。通过数控直流电流源和频率特性测试仪两个典型案例,展示了从系统方案设计、关键器件选型到软硬件实现的完整路径。同时,提供了基于STM32 HAL库的ADC采样、PWM生成、OLED显示、无线通信等常用模块的详细电路原理与驱动代码,并辅以测试报告范例和评分标准解析,帮助参赛者规范撰写高质量设计报告。; 适合人群:参加全国大学生电子设计竞赛的本科生及指导教师,尤其适合有一定单片机和电路基础、希望在短时间内高效备赛并提升获奖概率的团队。; 使用场景及目标:①帮助参赛者快速掌握电赛命题规律与主流技术方案,精准应对电源类、控制类、仪器仪表类等高频赛题;②提供可复用的模块化代码与电路设计,加速硬件搭建与软件开发进程;③指导撰写符合评审标准的设计报告,强化误差分析与测试数据呈现,提升综合得分。; 阅读建议:建议按照“赛题分析→方案设计→模块实现→报告撰写”的流程顺序阅读,重点学习典型案例的整体设计思路与关键器件选型依据。对于代码与电路部分,应在实际开发板上动手验证,结合示波器、逻辑分析仪等工具进行调试。撰写报告时,务必参考文中测试表格与误差分析模板,确保数据完整、分析定量,避免因报告不规范而失分。;
内容概要:本文提出了一种基于局部质心的无监督图像分割方法,适用于2D和3D图像,通过Matlab代码实现。该方法不依赖标注数据,利用图像内部的局部质心信息进行聚类分析,从而实现对图像关键区域或物体边界的自动提取。文中系统阐述了算法的核心原理、实现流程及其在多种图像类型上的应用表现,重点展示了其在处理复杂结构图像时所具备的高鲁棒性与分割精度,尤其适用于缺乏先验标签的实际场景。; 适合人群:具备一定图像处理理论基础和Matlab编程能力,从事计算机视觉、医学影像分析、工业检测或遥感图像研究等相关领域的科研人员及研究生。; 使用场景及目标:①实现医学图像(如MRI、CT)中病灶区域的无监督自动分割;②应用于工业领域中三维物体表面缺陷的识别与定位;③完成遥感或生物显微图像在无标签条件下的像素级分割任务;④为后续高级视觉任务(如目标识别、行为追踪)提供高质量的前期特征支持; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,深入理解局部质心计算机制与聚类分割过程,尝试在不同模态图像上调整参数以优化分割效果,并可将其与K-means、Mean Shift等经典算法进行对比实验,全面掌握该方法的优势与适用边界。

140

社区成员

发帖
与我相关
我的任务
社区描述
海量记录笔笔算数
其他 其他
社区管理员
  • OceanBase数据库官方博客
  • raylg960
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧