数据库的弹性伸缩与WebServer相比,复杂了很多倍,对于WebServer的弹性伸缩直接用负载均衡+弹性伸缩组件搞定。但对于数据库的扩容、缩容将面临数据不一致等问题。这些问题在互联网企业上云是必须解决的,为提升我们对大型业务上云的理解,我们今天一起来看一看。
一、数据库的弹性伸缩究竟会出现什么问题?
传统公司习惯对数据库进行垂直伸缩,他们购买更强大的服务器,增加更多的内存,换更快更大的磁盘,期望数据库引擎能够利用这些资源实现伸缩。绝大多数传统公司都是这样做的,但随着互联网的屈起,系统的支撑数据量、并发量像火箭一样直升。
数据库的伸缩主要问题是,服务器是有数据业务,是重有状态化的数据,增加、删除服务器都会对数据的访问带来直接影响。例如:因数据量下降,自动删除一台数据库服务器,而上面有数据该怎么办?再如,业务量上升,自动增加了一台数据库服务器,新的服务器该承载哪些新的业务,与原服务器的关系是什么?
二、该如何解决这些问题?
1、传统方式是做数据库的主从同步、主主同步,但仍存在瓶颈。
主从同步:主用服务器只有一台,而从服务器N台。主用作为写使用,从服务器作为读。但写的服务器只有一台,还是会遇到数据处理能力的上限。