查看原文
其他

如何规划、建设你的数据库架构

民工哥技术之路 民工哥技术之路 2021-12-16

点击上方“民工哥技术之路”选择“星标”

每天10点为你分享不一样的干货

 读者福利!多达 2048G 各种资源免费赠送


来源:cnblogs.com/double-K/p/8970572.html


架构的演变


架构演变一定是根据当时要求的场景、压力下性能的需要、安全性、连续性的要求、技术的发展.....


我把架构的发展分为大概4个阶段:


1. 单机模式


  


IT建设初期,高速建设阶段,大家要做的只有一件事,我需要什么构建什么,我需要ERP我买软件,需要HIS买HIS,这个时期按需构建大量的系统基本在这个时期产生,当然那个时候也没什么高可用的要求。


2. 双机热备和镜像


    


基本是20年前的技术了,在高速构建后,一堆的系统运行中,用户发现我们的核心业务如果坏掉业务受影响,停机几个小时做恢复 这是无法接受的,那么双机热备或镜像,Active-Standby的模式出现,这样一台机器工作,一台备用坏了在短时间可以接管业务,造成的损失会低很多!


那么问题也很明显,备机资源浪费,依赖存储,数据还是单点,成本较高。产品也很多:RoseHA/RoseMirrorHA、NEC ExpressCluster、微软MSCS、Symantec VCS、Legato、RHCS 太多太多了。


随后为了解决数据单点的问题有出现了 存储的主备,存储的双活这厂商也太多了,这里就不介绍了。


    

 

基本上传统企业依然停留在第一和第二阶段,也就是要么单机,要么双机热备


3.节点多活


       


随着业务量越来越大,数据量不断飚升,系统高效性的矛盾显现出来,系统卡慢、报表、接口业务无法分离OLAP OLTP业务混合导致系统锁情况严重,资源消耗极其庞大,光靠升级硬件已经无法满足要求,横向扩展已经成为大势所趋。


同时切换时间、备机无法启动的问题也困扰着用户。


那么节点多活,多台机器同时对外提供访问的技术登上舞台,代表的ORACLE RAC、微软ALWAYSON 、MOEBIUS集群


多活的两种模式也是从第二带架构的演变


oracle rac 把双机热备的辅助节点变的可以访问,关键点数据在多节点内存中的调配


Microsoft awo、Moebius 则是把镜像的辅助节点变的可以访问,关键点数据多节点同步


这样横向扩展来分担压力,并且可以在业务上进行分离。


4.分布式架构 


   


分布式架构真的不知道从何说起,概念太大,每个人理解的都不一样,只能意会不能言传:


比如说一份数据分开存成多份

比如说拆分,水平拆分、垂直拆分、分库、分表、分业务

比如说....


其实说到底就是在第三代横向扩展也无法满足的情况下,继续“拆”,根据不同需求各种“拆”,拆到什么样呢?大家都知道可以说最慢的环节在数据库,传统的做法复杂语句,大存储过程运行非常慢,那我们就把这些拆到表数据量足够小、语句足够简单、业务粒度小、访问压力尽量的小!


这样细化的设计一切为业务服务,也是精细化设计产物,但这也存在一个问题,传统企业在缺少高端人才,人力的情况下根本无法做到。现在的互联网公司为业务的需要同时对IT团队的大力建设,这是传统企业根本无法达到的。


当然如果有第五代那也许可以说是云,未来业务一切的技术都是云端,云端看不见摸不到,传统行业人回归业务,而IT 建设与管理也必然由专业的人做专业的事儿。

 

个人总结的架构演变,主架构演变不包含其他辅助技术,仅供参考


其他技术漫谈


在这四代架构之间也有很多技术出现,主要以数据复制、存储同步为代表,如DG、OGG、LOGSHIPPING、Replication等等,这些都是不同场景下的数据复制,让一个副本变成多个,基本目的在于副本读或者本/异灾备,而这些技术也在不同的场景中扮演这重要的角色,每种技术都有自己的优缺点,不能一概而论。


  

 

当然这里面还包含现在所谓的虚拟化、超融合、存储双活,这些技术首先不是数据库本身技术,在很多企业所谓数据库的高可用中扮演着擦边球的角色,虚拟化、超融合、存储双活都有自己适用的场景,而说到数据库的架构,这些方案只是基础架构层面。


  


如何选架构


选架构


首先你该选的是几代架构?


四代架构是按照业务不断细分,以冗余 和 拆分、细化为主线大体过程


二代冗余

  

三代粗拆分

  

四代细拆分

当然这是只是大概的意思,实际中拆分的场景,条件,扩展性一系列复杂的过程。

 

我曾经无数次遇到几十G的库 几百并发的应用就要规划分片,领导最求高大上,底下技术人员叫苦。


构建


构建中主要是对建构的细节了解和熟练,这和企业的人员配置有很大的关系,传统企业中很多在架构方案中选择第三方产品?这是为什么,构建需要专业的人,而企业最少的就是这部分人,而维护管理,责任划分也是不得不考虑的事情。


当然架构越复杂投入的经历也就越大,这也不是一个架构师可以主导的事情。


维护


维护才是关键,业务变动后的灵活性、压力下的扩展性、出问题的排查、技术力量的支持,一系列漫长的过程开始了.....


题外篇


自己在传统行业玩的太久了,写这片文章的过程中也和PingCAP 联合创始人& CTO 黄东旭,聊了一些未来技术的发展,tidb做的风声水起,对未来数据库大家都是未知,但随着技术的不断涌现更牛的架构,更牛的理念也必将一一实现。


比如依靠智能化的机制集群自我修复,性能自提升,架构自适应等等


总结


架构方案是几代不重要,重要的是适合自己的业务,保证稳定、安全、高效、持续,单机适合简单业务,没有那么高的安全性、连续性依然可以,双机热备可以保障基本的高可用,节点多活的集群适合业务压力较大简单粗暴的分离和压力分担,至于分布式如果企业有能力有资源,业务压力庞大自然会考虑,但在我接触的客户中太多认为自己业务只能通过分布式方案构建,但是其实只是简单优化+三代多活,读写分离负载均衡即可满足。


所以根据自己业务评估最为重要,一个好的架构规划,不但解决现有问题节省成本,更会避免步子太大激进带来的不必要损失。


版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。


关注 民工哥技术之路 微信公众号对话框回复关键字:1024 可以获取一份最新整理的技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELK Stack、机器学习、BAT面试精讲视频等。

中台的末路

程序员相亲图鉴

不懂这些装B神词儿,不足以混外企!

阿里腾讯PK国企,这几点说到心里了,你承认吗?

CentOS 7.7(1908)已发布,CentOS8.0还会远?

干货!MySql DAL中间件总结

6个月达不到25.6万年薪AI工程师、进不了大厂全额退款

点击【阅读原文】发现更多精彩内容~~

在看的你,请点这里↓↓↓
: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存