百度架构师是怎样搭建MySQL分布式集群?
2018-09-04 本文已影响17人
程序员北游
1、什么是MySQL集群
MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。
数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。
无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。
通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余。
需要更多MySQL集群知识的可以订阅我哦
2、名称概念
MySQL集群有如下三层:
应用程序层:负责与mysql服务器通信的各种应用程序。
Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。
NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。
其中MySQL数据库集群主要包括如下三部分:
1) SQL节点(SQL node - 下图对应为 mysqld):分布式数据库。包括自身数据和查询中心结点数据
2) 数据节点(Data node - ndbd):集群共享数据(内存中)
3) 管理服务器(Management Server - ndb_mgmd):管理集群 SQL node,Data node
拓扑结构图如下所示:
程序员学习交流群:878249276,欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!