前几天跟一个IT行业研究员聊了聊有关分布式数据库的话题,恰巧公司最近也在做相应的产品测试,算是给我提供了点写作素材。
趁热打铁,心动不如行动,今天就跟大家分享一点我对分布式数据库的看法。
什么是分布式数据库
分布式数据库是相对于传统集中式而言的。
数据时代,传统集中式数据库已经无法满足互联网应用的需求,于是出现了分布式数据库技术,用来支撑高并发、大容量的应用场景。
分布式数据库的最本质特征就是多合一,通常是多台服务器(或多个计算和存储资源)组成一个集群,整体对外提供数据服务。
分布式数据库分很多种,有NoSQL,也有NewSQL。我觉得狭义概念的分布式数据库主要是指面向交易类型的OLTP系统。
虽说现在几乎所有的分布式数据库都具备HTAP混合负载能力,但在交易和分析层面仍有侧重。
而面向查询和分析为主的OLAP分布式系统,习惯被称之为大数据平台。
另类的“分布式”系统
互联网时代,以MYSQL和PGSQL为代表的开源数据库开始崭露头角。
但MYSQL在单库处理能力上与Oracle相比,还是有差距的,于是出现了一种另类的“分布式”数据库系统,行话叫“分库分表”和“读写分离”,采用了以大化小,分而治之的策略。
通过架构层面的设计,将多个独立的数据库组合使用,这里面关键技术就是在应用中间件层实现数据访问路由。
不过,这种架构导致了数据库数量的激增,随后便衍生出了云数据库。
随着互联网技术的演化,理想中的新一代架构应该是应用的微服务架构和分布式数据库的组合,时髦一点的叫法,云原生架构。
廉颇老矣,尚能饭否?
分布式兴起,集中式就过时了吗?答案显然是否定的。
阿里之前也用Oracle,只是后来满足不了它的互联网场景需求,于是乎,马云喊出了著名的“去IOE”,阿里也因此走上了拥抱开源,自主研发的道路。
回首过往,去IOE大概也有十年了,互联网说到做到,不跟IOE玩了。
但传统企业好像没啥太大的动静,大部分增量系统被开源抢了风头,但是存量系统,依旧风景这边独好。
这些年,IBM的下坡路越走越顺,EMC也变成了DELL的跟班,唯独Oracle,生命力依旧旺盛,尽管增量市场被蚕食大半,但是几十年的技术积累依旧提供了肥沃的土壤。
这期间,Oracle通过Exadata的技术创新亲手埋葬了自己的SPARC,一举颠覆了企业级IOE的格局,也让O记完成了蜕变。
听说保险行业很多用户都改装了Exadata,可惜我司是IBM粉,与O记缘浅。
行文至此,不由感慨,原来O记的拉里·埃里森也是“去IOE”的大赢家。
为什么要上分布式?
明明传统数据库能解决的问题,为什么要上分布式来增加复杂性。
很多系统一没痛点,二没场景,所以不是所有的系统都需要上分布式。对于需要的,也不是所有的系统都具备上分布式的条件。
我的看法是,分布式数据库比较重,如果不打算重构核心,其实大可不必上分布式数据库。
如果应用端没有实现微服务,而只在数据库层面实现了分布式,性价比太差,更何况没有应用的支持,分布式数据库也上不去。
去IOE,难就难在Oracle上了,因为数据库跟应用绑定性强,更换数据库是大手术,工期长,风险大。
所以,最好的时机就是上新核心,天时地利人和,然后一步到位,不过即使人财物资源齐备,上新核心依旧困难重重。
说到底,上分布式应该是业务场景需要,要么是敏捷性,要么是扩展性。分布式不是目的,数字化转型才是目标。
换个角度,一个公司可能上百套数据库,但真正核心的其实没几个,大多数属于外围的小角色,对于这种系统其实可操盘的空间很大,如果上个分布式整合一下也不是不行。
谁才配得上分布式数据库
这个要看出身,既要看厂商的出身,也要看客户的出身。
通常,体量较大的中大型行业客户才会搞私有云。我认为,从某个层面上讲,分布式数据库跟云属于紧耦合,不过因为云的维度高,所以私有云选型的时候其实是云决定库。
如果云厂商的私有云没有一个拿的出手的分布式数据库做支撑,这个云注定是平庸的。
想来,哪个云厂商会在自己的云上运行友商的分布式数据库呢。
当然也有例外,就是用户自己在私有云集成像TiDB和SequoiaDB这样的第三方产品。这时,就看用户的对于分布式数据库的定位了,是产品项目化,还是系统平台化。
当然,如果家里有矿,多来一朵云,也不是不行。
从业务场景看,互联网保险核心对分布式数据库是刚需,传统险企一直试图找到高频带低频的场景,好像没啥效果,倒是保险开门红让电子化投保变成了险企的双11。
一个新技术的出现,从诞生到成熟,总需要经历一个过程。如果等有了痛点再行动,可能就晚了,对技术有需要预判和储备,防患于未然。
有多少钱,办多少事,分布式数据库选型,门当户对很重要。
这次内容有点多,关于分布式数据库的对比和展望只能留到下篇再分享了。
- 未完待续 -
---感谢阅读。如果觉得写得还不错,就请点个赞或“在看”吧。
公众号所有文章仅代表个人观点,与供职单位无关。
评论
