
活动简介
在现今云计算 、大数据等新型技术推动下,金融科技迎来了新一轮创新浪潮, 业界主流的应用架构 ,正由松耦合、集中式的SOA架构向解耦合、分布式的微服务架构发展。在"去IOE"、"自主可控"的技术和政策双重背景下,传统金融行业的业务系统所采用的数据库,正在从老牌传统数据库(DB2 、 Oracle等) 逐渐过渡至开源数据库或国产数据库。
作为一家传统金融企业,各业务系统仍然是纵向隔离的状态,在烟囱式系统架构中,每个业务系统都有其独立的数据库,随着业务系统数量越来越多、数据规模越来越大、交易复杂度不断提升,数据库的数量也越来越多,对于管理成本和人力成本提出了很大挑战。并且,由于数据库各自独立,无法对全部数据库的运行状况形成全局视图,缺乏统一的“数据库管理大脑”,无法进行统一的数据库分析和辅助决策, 出现问题时往往各自为政 ,存在数据孤岛,管理时效性难以保证。同时当前多数业务系统采用典型的SOA系统架构 ,其数据库多为主备部署模式,在应用方面存在并发能力不强、弹性不足、系统资源利用不均衡、更新迭代发布周期长等问题,难以适应业务高并发、负载波动大、新功能上线频繁等需求。
近年来,为满足业务发展需求 ,顺应技术发展潮流 ,以微服务的理念,进行线上交易系统的微服务化设计。但现有的传统数据库架构,尚不能以平台化形式提供分布式数据库服务,难以满足业务系统未来的发展需求。基于以上原因,我司开展了分布式数据库的探索和应用。根据国内某著名社区统计,当前国产数据库数量已经高达240个以上,现在国内数据库市场蓬勃发展,正处于百花齐放的阶段,琳琅满目的数据库,让人眼花缭乱。如何选择一个适合自己企业的数据库显得尤为重要。
目标与需求
我们在进行数据库设计时 ,主要考虑达成几个目标,一是提高系统扩展能力,应对高并发访问;二是提高资源利用率,降低运营成本;三是提高系统可靠性,降低运行风险。
结合数据库设计目标,以及国产数据库应用和运维场景,我们进一步梳理了需求,主要包括以下方面:
(1)通用需求:如支持标准SQL语法,支持国产芯片、国产操作系统,支持各种数据类型、数据库对象、约束、字符集等。
(2)分布式功能需求:如支持分布式事务、MVCC多版本控制,支持高并发情况下的完善锁机制,具备不同隔离级别,支持分表分区分片,支持读写分离,支持在线弹性伸缩与平滑扩容,支持SQL优化器等。
(3)性能需求:要求系统集群采用高可用架构,性能满足QPS支持10w+、TPS支持5w+,以及连接数和并发数要求,且具备良好的数据副本同步性能。
(4)高可用需求:要求集群架构无任何服务单点,服务稳定可靠,具备各种层级的高可用能力等。
(5)备份与恢复需求:如支持在线全量备份、增量备份、差量备份等功能,支持任意时间点的备份恢复等。
(6)架构要求:支持多数据中心多活架构,例如三地五中心架构。
(7)安全需求:如支持加密存储,支持多租户资源隔离,支持权限管理,支持黑白名单,支持防注入攻击等。
(8)运管监控需求:如具备可视化运维管理工具,支持数据库实时监控和历史回溯,支持数据库审计、SQL执行计划及优化提醒,支持统计分析等。
(9)运维需求:如支持不停业务的版本升级,支持灰度发布、滚动升级等,支持在线配置,支持在线扩缩容等。
(10)可移植性需求:如支持基于原数据库的开发内容,实现平滑过渡 , 降低移植改造成本。
(11)数据同步:支持主流数据库之间迁移数据,支持数据准实时同步到大数据平台。
本期活动探讨
1、中小银行国产数据库选型中遇到的具体问题
2、如何实现背景中提到的11点需求
3、该需求下,技术路线,产品选型
4、国产数据库生态环境