在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了。也给大家介绍了数据库服务器从主备架构、到主从架构、再到主主架构的基础方案。但如果单台机器已经不能满足完整业务数据存储的时候,我们就需要考虑采用多机甚至多中心的部署方案了。
今天我们就再来聊一聊,在多机环境下,数据库集群的架构方案。
同样,这里先不看细节,不管底层数据源是什么数据库,我们先谈架构方案。因为无论底层是 Mysql 还是 Redis、MongoDB,我们在架构设计上都是相通的。
针对多机的架构,常见有如下做法:
-
单中心数据集群
-
多中心数据分区
下面我们来具体看看:
一、单中心的数据集群架构(单中心多机)
单数据中心多机器的集群又可以分为:
-
数据集中模式
-
数据分散模式
这两种的主要区别在于集群中的完整业务数据是全部集中在一台机器上,但是分散在多台机器上。
-
数据集中模式
如图,
这种模式与「一主一从式」(主从式)比较类似,完整的业务数据还是存储在一台主机的上,主机承担读服务和写服务,从机只承担读服务。但是从机有多台机器,从机实时的从主机同步数据。所以这种模式,也可以理解为「一主多从」式。
因为有多个从机,那么也给这种架构带来了一些额外需要处理问题,比如:
1.1,主机需要实时的将数据同步到多台从机上,涉及到主机的处理压力问题。
1.2,需要保障多台从机之间的数据一致性的问题,如果出现数据不一致,如何处理。
1.3,多台从机是如何检测主机状态的,因为