俗话说的好,一根筷子易折断,10根筷子折不断,其实放在数据库上也对,如果你只有一个数据库在用户量大的情况下很轻易就崩了,如果你有10台的话就有可能不会崩。但多台数据库之间怎么搭配起来用呢?会有哪些坑呢?今天就来说一说

多台服务器搭配使用时,可以使用一主多从的结构,其实也就是读写分离的基本结构。

读写分离主要是分摊主库的压力,支撑更多的查库请求。常见的做法有两种

优点: 客户端直连,少了一层proxy转发,所以查询性能会好一些,并且整体架构简单,易于维护。

缺点: 需要了解后端部署细节,在主备切换,库迁移上客户端都会感知到,并且需要调整数据库连接信息。

这种方案一般都会伴随一个负责管理后端的组件,比如zookeeper,尽量让业务端只专注于业务开发。

优点: 对客户端友好,客户端不需要关注后端细节,连接,维护,等工作,都有proxy完成。

缺点: 对后端维护团队的要求会比较高,而且proxy也需要高可用架构,因此整体的架构会比较复杂。

这两种方案都各有优劣,所以具体使用哪种还需要根据你的实际的业务,团队情况来选择,目前来看是向带proxy的架构发展的。

不论使用哪种架构,都可能会有主从延时的问题,比如客户端刚修改完数据,再去查询此数据时,从库有可能还没同步呢,导致出现过期读的现象。此时可以判断是这种情况就强制走主库去查询,但要防止此类情况同时发生太多导致主库崩溃情况哦,或者你也可以尝试其他的解决方案。

注:本文内容来自学习《MySQL实战45讲》中第28讲的学习心得,如有问题,请联系处理,谢谢。