数据库选得好,DBA背锅少!

B站影视 内地电影 2025-05-21 17:43 1

摘要:互联网大厂的业务模型、中台理念、应用架构以及分布式数据库,甚至互联网公司的从业人员,都成了香饽饽。

不知道从何时起

选数据库必选分布式”成了一种潮流

数据查询慢?上分布式!

应用总是瘫?上分布式!

业务体量大?上分布式!

KPI考核不达标?上分布式!

分布式数据库”的疗效

就这样被神话了

跟数据和应用相关的各种疑难杂症

仿佛都可以拿“分布式大法”来治

果真如此吗?只能说

用户心中的「成见」,像一座大山

过去几年分布式数据库造势太猛

别管什么场景,只管整就完了!

这座大山是如何形成的?

上个十年,互联网公司的业务大爆发,让互联网范式走上了神坛。

互联网大厂的业务模型、中台理念、应用架构以及分布式数据库,甚至互联网公司的从业人员,都成了香饽饽。

那么,由此带来的香饽饽之一“分布式数据库”,到底好不好?

不可否认,确实好!

分布式数据库的最大优势在于其横向扩展能力,轻松处理超大规模数据和并发请求,比如电商平台、社交媒体或其它超重载应用。

而这,恰恰是互联网业务场景的特点↓

海量用户,高速扩张,峰值秒杀,大批高端技术牛马负责运维保障…

但是,一旦抛开互联网业务,来到传统企业级场景,你会发现↓

分布式数据库没那么神,甚至,还有一些劣势——

业内曾经流传着一个很著名的案例:

某银行做分布式数据库试点,用600台x86服务器承载分布式数据,替换了一个三节点O记RAC。

性能和扩展性似乎上来了,但运维成本大幅增加(人力、电费、机房空间、备件)。

所以,技术选择需要回归业务本质,而非追逐技术潮流

分布式数据库绝对不是包治百病的良药,任何场景,都需要对症下药。

数据库到底应该如何选?

一、要搞清自己的业务需求和痛点,再对症下药↓

如果是面向海量用户,超大数据量和增长潜力,并伴有高峰值并发、秒杀型的典型互联网业务特征,这确实是分布式数据库舒适区。

如果是复杂业务计算和数据热点集中的场景,采用集中式库更合适,比如12306客票、医院HIS、外汇交易、生产调度、ERP等业务

二、要对分布式祛魅,很多所谓的“分布式场景”,都跟分布式数据库没半毛钱关系。

1、“分布式应用”场景:

有的客户希望用分布式的云原生架构,比如微服务化/分布式应用,支持敏捷开发DevOps。

分布式应用的本质,是将上层业务模块解耦、拆分,每个模块都可以独立开发、维护、扩展,并实现容错隔离。

如果只是应用解耦,而数据库保持不变,很显然这个过程与数据库是不是分布式没关系。

而如果在应用解耦过程中,同时将数据库拆解并绑定到特定微服务应用中,那显然数据库面临的压力变小了,也与分布式更没关系了。

至于敏捷开发、CICD、DevOps什么的,跟数据库是不是分布式同样没关系。

2、“分布式用户”场景

有些用户的本意是希望节省成本,一套数据库能满足多个部门、多个应用的需求。

他们认为分布式数据库能够更好地满足这样多部门、多业务需求。

这种情况跟分布式毫无关系,这是数据库的多租户场景,采用支持多租户模式的集中式数据库成本更低、效果更佳。

3、“分布式标底”场景

前两种只能算“错误认知”,而这一种就堪称魔幻了。

有人只是觉得分布式数据库更热门、更拉风,就写进了采购标底。

结果采购回来,实际部署的时候,却当成单机版,集中式部署,妥妥“冤大头”。

要知道这种把分布式数据库当集中式部署的情况,综合性能远不如原生的集中式数据库。

以上这三种“分布式”场景,都不需要“分布式数据库”。

此时,选择合适的集中式数据库,能够获得更优的性能、更好的运维体验,以及更低的成本。

选择金仓,应对企业全栈场景

接下来,我们以金仓数据库为例,讲一讲面对各种业务需求,具体如何选型。

作为国产数据库领域的领军企业,金仓数据库产品线丰富,既有集中式产品,也有分布式数据库,广泛适配各种业务需求。

第一、分布式应用需求

乍一看,分布式应用很复杂,其实每个拆分后的微服务应用,相比单体应用,功能更加纯粹、简单,反而对数据库的要求大大降低了。

所以,能扛起大型单体应用的金仓数据库,针对分布式应用这点“小Case”,自然轻松拿捏。

同时,针对不同微服务模块的业务特征,可以采用不同类型的数据库来搭配,从而达到最优的效果。

比如一个微服务化的电商应用,包含用户、商品、订单、支付、统计分析等模块,那么可以针对性的进行数据库设计。

用户服务:事务性、高可靠要求,采用KES主备集群;
商品服务:事务性,读多写少、缓存需求高,采用KES读写分离集群(支持Redis迁移)
订单服务:事务性强、一致性要求高,并发读写压力大,采用KES RAC;
支付服务:高事务性、金融级一致性,采用KES RAC;
统计分析服务:数据量巨大、实时复杂查询分析,采用KES ADC。

第二、多租户需求

在企业级场景,不同部门、不同业务系统,都对数据库有要求。

以往解决这种问题,最简单粗暴的办法就是采购多个数据库,多套物理硬件,各跑各的,大家都没意见。

但这种方式会造成巨大的资源浪费,每个数据库利用率都很低,运维、升级也要独立完成。

想要实现多用户、多部门共享,最佳的解决方案是采用数据库的多租户功能。

针对多租户需求,金仓数据库是提供两大类四种场景的成熟解决方案,灵活满足不同建设现状、不同隔离级别、不同预算要求。

1、VM级多租户

适用于客户已建好有虚拟化/云平台,金仓数据库可以无缝融入,资源硬件共享、基于VM隔离,支持VM级扩缩容。

2、容器级多租户

适用于客户已有K8S容器化平台层,金仓数据库无缝融入,硬件、OS共享、基于容器隔离,支持pod级扩缩容。

3、数据库实例级多租户

适用于中小型应用,低成本投入,单个服务器跑多个业务系统。金仓数据库天然支持多实例特性,每个业务独占一个数据库实例。

并且在部署的时候,可以利用多台服务器池化,主备实例分开部署,提升数据库冗余能力。

同时,金仓也支持分布式数据库的多实例模式。

4、数据库User级多租户

这种模式,通过将数据库创建若干资源组,实现整体资源池化,然后创建用户租户,并指定分配的资源组。

从而实现数据库实例部署多租户系统,租户间资源隔离,提升软硬件资源利用率,大幅降低成本。

第三、集中式高可用数据库需求

大中型企业的生产级核心应用,都需要数据库支持高可用集群,或者再明确一点,他们希望对Oracle RAC进行国产化替代。

此时,就轮到金仓的另两个重磅数据库产品登场了。

1、KES RAC,多写共享存储集群

看名字大家就秒懂了,这是对标Oracle RAC的场景。

KES RAC集群支持2-8个节点规模,读写请求横向扩展(吞吐量加速比超过0.8),提供“RPO=0、RTO

2、KES RWC,读写分离集群

基于事务级别的读写分离,自动识别SQL语句读写种类,一主多备、一写多读。

KES RWC适用于大规模并发查询、读多写少的中/重载业务场景,支持从实例、集群到多中心的高可用保障,数据零丢失,故障秒切换。

第四、真正的分布式数据库需求

在企业级市场,确实存在一些真实的分布式数据库需求:比如超大型应用(超高并发、海量存储、横向扩展)、极致高可用(跨中心多活、局部高容错)等等。

针对这样的现实需求和潜在需求,金仓数据库提供了强大的“分布式三剑客”。

1、KES TDC,基于分布式存储的透明分布式方案。

该方案对上层应用完全透明,不需要应用改造,可平滑迁移,并具备横向扩展能力和节点故障容错能力。

适用于超大型集团办公平台、政务核心平台、医疗HIS系统、银行信贷管理系统、港口TOS系统等…

2、KES Sharding,基于分布式中间件的分布式方案。

该方案需要应用支持分库分表改造,适用于对并发、容量、吞吐量扩展性要求高的事务处理场景,如运营商网间结算、基金公司TA系统等。

3、KES ADC,基于分布式+融合多存储引擎的分析性分布式方案。

该方案适用于大规模AP或者HTAP场景,类似数仓、实时数仓,诸如数据统一汇总平台、大数据分析平台、进出口贸易货物统计系统等等。

最后,还是那句话:技术的选择要回归业务本质,而非追逐技术潮流。

明白这个道理,我们就掌握了消除成见、翻越大山的核心奥义。

怎么样?您的数据库选对了吗?

来源:特大号

相关推荐