分布式数据库的核心价值是为分布式应用提供弹性可扩展的数据服务的资源池,它也可以被称为DBPaaS平台。其主要能力在于为上层数以万计的来自不同开发商、不同业务类型、不同SLA安全级别、不同数据类型的微服务提供一个可弹性扩展、高响应速度、易维护的数据库服务平台。
同时必须支持在不同微服务数据间进行高可用配置、容灾策略定义、多租户、业务数据逻辑物理隔离、交易分析混合模式隔离、冷热数据隔离等一系列数据隔离与治理机制。
一些采用微服务架构的互联网企业,20余人的数据库运维团队可以支撑几十万个不同的数据库实。运维最核心便是构建了企业统一的DBPaaS平台,通过分布式数据库的故障自愈、弹性扩展等机制大规模简化了运维人员对数据库的管理。目前业界有很多分布式数据库产品,主要分为三层体系结构。
应用垂直拆分垂直拆分的应用是分布式最常规的概念之一。
实现这一点的一种方法是将应用程序分解为几个单独的子服务,每个子服务对应整个数据的一部分;另一种方法是在一个服务中连接多个数据库连接,并根据应用内部业务规则选择数据源。例如,应用根据用户账户ID进行切分,ID为一到一百万之内的用户存在数据库A、从一百万零一到两百万存在数据库B,以此类推。通过在应用程序内预设一个该机制规则,每次访问数据库首先从规则数据库实例目标筛选,然后直接获得连接到访问。
使用这种机制,一方面跨数据库事务极难实现,另一方面从应用来看,分布式业务的能力极具侵入性,需要大量的定制开发来完成基本的业务逻辑,而每一次扩展都需要对应用逻辑做一个完整的端到端梳理,可能有很多风险和二次开发工作。中间件分库分表随着需要分布式存储能力发展需求的普及,业界开始逐渐出现了另一类技术服务体系,称为中间件分库分表,这类技术体系的思路是在应用系统程序和数据库之间通过构建提供一个SQL解析器服务,将传统的SQL进行数据解析然后翻译成底层每个数据库所对应的子查询,然后将查询直接下发给底层的传统数据库进行有效执行。
这种机制的优点是,数据存储可以继续基于传统的关系数据库上保持不变,而在一定程度上的封装应用程序接口。
但是,中间件分库分表的机制从整个建筑行业发展来看,可以认为是从传统单点数据库向分布式系统数据库结构转型的过渡阶段。在新型基于PC服务器构建的分布式数据库普及之前,一些急需数据拆分的应用研究可以先通过该方式能够缓解经济业务与数据量暴涨的压力。但在中国未来原生分布式数据库成熟且得到进一步验证后会其优势将很难继续保持。
同时,该技术对于应用技术无法真正做到100%完全透明。一般来说需要在实际应用拼装SQL的时候指定一些相关参数或使用较独特的语法,很难能够做到对应用完全透明无感知。
免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报
举报