MySQL中的这17个关键问题,一定要弄清楚( 二 )


然后是各种系统接口调用,把大事务拆成小事务,事务之间做好隔离和同步 。上图中的三个问题在横向集群的架构体系中应属于很有特色的问题,在实际项目中其实是尽量去避免这些需求的存在的,不过如果确实需要了,也得有解决方案 。下学期也将针对这些问题进行逐一整理,并测试一下一些号称支持这些功能的中间件 。
五、纵向集群
 

MySQL中的这17个关键问题,一定要弄清楚

文章插图
 
 
横向集群的切分思路最终是切分子系统,而纵向集群最后遇到的最棘手的问题是扩缩容,我运维的一个系统是提前对数据做了256个切片,256切片中0~127切片和128~255切片分别存在两个一主两从的数据库集群中,系统运维了3年多,目前还没有扩容需求 。设计初衷应该是考虑得到,假设有一天数据量非常大,可以把256个切片分4大片,分别存储到4个一主两从的集群中,从而实现扩容 。
这个思路的确是可取的,只是我们的分库逻辑当前是php代码实现,也有一定程度上影响了业务代码的逻辑,运维起来有点心惊胆战,还是保持业务代码清爽比较好 。
下学期将介绍一些实现了库路由功能的中间件的使用,也根据实际情况把想到的一些扩缩容方案实践一遍,敬请期待实操效果的分享 。
六、混合模式
与其说这部分内容讨论上面5种场景的混合,不如说这部分内容是做总结 。上面的5种场景中,一共列举了17个问题点,这17个问题点基本上都是叠加式的,越往深入的框架去做就越需要考虑齐这17个问题点 。17个问题点考虑全了,混合模式下的问题就不成问题了 。

【MySQL中的这17个关键问题,一定要弄清楚】


推荐阅读