MySql集群模式学习

98 阅读2分钟

读写分离模式

原有的基础上增加中间层,与后端数据集构成读写分离的集群。

整体基础结构:原有的主库派生出字库1,字库2, 利用mysql原有的主从同步机制(即为:binlog日志同步),将主库的数据变化在从库中复现,保证数据同步。

主库一般用于写入处理, 从库负责读取。

细节:如果直接面对主库进行操作无法完成读写分离,需要在前端分配分片中间件(阿里mycat,京东ShardingSphere), 该中间件通过curd请求,来决定由哪个库处理。MHA中间件实现高可用(即:主服务器坏了,MHA中间件可以将某个从表提升为主服务器)。 所有节点数据均保持同步。适用于读多写少,单表不过千万的互联网应用。

分库分表(分片)集群模式

一个mysql数据库撑不住的情况下。将数据库的数据分到不同的节点数据库(即:节点数据库的数据合起来为完整的数据体)。 需要用到中间件进行路由。(对sql进行解析,将请求发到对应的数据库,分发请求的过程叫路由)。不具备高可用性。

主流模式:读写分离和分片的组合运用

分片算法: 1.范围法,对主键(即为分片键进行划分。如id),mysql默认提供的特性(分区表为典型的范围法),易扩展,适用范围检索,但数据不均匀,局部负载大,适用流水账应用。 2.HASH法,对id取模。取模和一致性Hash(独特的环形算法)。数据分布均匀。扩展复杂,数据迁移大。建议提前部署。