早期在数据量还不是很大的时候,数据库就采用一种很简单的单机服务,在一台专用的服务器上安装数据库软件,对外提供数据存取服务。但随着业务规模增大,数据库存储的数据量和承载的业务压力也不断增加。数据库的架构也必须随之变化。
如上的架构分类方法,是一种按照主机数量来区分的分类方式,分别是单机架构和多机架构。单机架构分为单主机和独立主机,多机架构分为分组和分片。
为了避免应用服务和数据库服务对资源的竞争,单机架构也从早期的单主机模式发展到数据库独立主机模式,把应用和数据服务分开,应用服务可以增加服务器数量,进行 负载均衡 ,来增大系统并发能力。单机部署形式,在研发、学习以及模拟环境中具有灵活、部署方便等特点。单机架构有几个显著的不足:
1、可扩展性。数据库单机架构扩展性只有纵向扩展。
2、存在单点故障。单机架构扩容的时候,往往需要停机扩容,服务也随之停止。另外,硬件故障容易导致整个服务不可用,甚至会有数据丢失的情况。
3、随着业务量的增加,单机势必会遇到性能瓶颈。
接下来我们来看一下分组架构里面的主备架构,实际上也是单机架构自然而然衍生出来的架构,主要是为了解决单点故障问题。
数据库部署在两台服务器,其中承担数据读写服务的服务器,称为“主机”。另外一台服务器利用数据同步机制,把主机的 数据复制 过来,称为“备机”,同一时刻,只有一台服务器对外提供数据服务。这种架构的优点是应用不需要为了应对数据库故障而增加开发量。另外相对单机架构而言,提升了数据容错性。这种架构的缺点是:
1、资源浪费,备机和主机同等配置,而基本上备机资源会处于闲置状态。
2、性能压力还是集中在单机上,无法解决性能瓶颈问题。
3、出现故障时,主备机切换,需要一定的员工干预或者监控。
主备架构无法根本解决问题,那来看看主从式架构。
部署模式和主备机模式相似,但备机上升为从机角色,也对外提供一定的数据服务。应用程序可以通过读写分离方式分散压力,优点明显,资源利用率提升,从机扩展性灵活等,但缺点也同样存在:
1、 数据延迟问题,数据同步到从机数据库时会有延迟
2、 写操作的性能压力,还是集中在主机上
3、 可用性问题,主机出现故障,需要实现主从切换,人工干预需要响应时间,自动切换的实现复杂度较高
接下来我们看另外一种特殊的多主架构,数据库之间互为主从,同时对外提供完整的数据服务。优点在于提升资源利用率的同时降低了单点故障的风险。
缺点也同时存在:
1、 双向复制同样存在延时问题,极端情况下有可能数据丢失
2、 数据库数量增加会导致数据同步极为复杂
接着再看看分片架构,其主要表现形式就是水平数据分片架构,优点是数据分散在集群内的各个节点上,所有节点可以独立性工作。
总结起来:
介绍了这么多种模式,数据库架构仍在衍生,细化来讲还有共享存储多活架构、分片架构、无共享架构、MPP架构等等,大家想要了解更多,欢迎点击《数据库介绍》进行学习,全面掌握关系型数据库架构!
https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXD011+Self-paced/about