本文章不是讲集群方案什么的
我不懂集群,今天牛同事给俺介绍了一下他的MysqlMMM集群,我这里做做笔记,记录我对集群的理解,以后后翻查。
数据库集群的特征就是 有多台机器,这多台机器上都有数据库, 这些数据库的数据是完全一样的,即相当于一套数据的多个副本。集群就是要保证这些副本的实时或准时实(可以延时一会)的同步,即如果一台机器上的数据更改时,集群系统要保证这个更改实时或准时实的应用到所有的机器上,实现数据同步。
集群主要解决两个问题:
1. 负载均衡:这个主要是解决访问量大的问题。一台机器的读写能力是有限的,当同时有大量用户访问的时候,仅一台机器可能就会因负载过大而垮掉。而使用集群后,集群系统会将访问量均衡到每台机器上,也即多台机器分担了访问量,这就达到了负载均衡的目的。
2. 当机:当只有一台机器时,如果这台机器因意外当机会需要停机维护,那么此时系统就不能访问,对于一些使用量大,使用频繁的系统而言,这样是肯定不行的。如果使用集群,只有集群中有一台机器还在运行,就能让系统继续运行下去,而且对于重新启动的机器,能很快的同步在停机时间用户所做的更改。我的当前公司很喜欢用顶这个词,当一台机器垮掉时,能立马有另一台机器顶上。
集群的方式和技术点:
由于俺对集群不了解,对于有几种方式更是不清楚,这里就以这个同事介绍的Mysql MMM集群记记。
这个集群用了5台机器,两个主(Master),两个从(Slave),一个用来监视。这里只介绍大概,具体的俺也不清楚。
5台机器都有一个IP,在集群时给两台主机器分配了同一个虚拟IP,这个虚拟IP主要用来进行写操作(事务性操作)。然后再为两个主和两个从每机分配一个虚拟IP,这些ip用于读操作。虚拟IP就是为了让集群系统来决定每一个访问所连接的机器(或数据库),从而达到负载平衡。给机器分为主和从,是为了让主作为作为写的主体,即所有写的操作都是在主上进行。主和从都可以作为读的主体,由于在平时访问中一般读取要远大于写操作,所以这里就机当于多出两台从机器用于读取负载。
当要进行写操作时,使用写的虚拟IP连接数据库,集群系统会跟据两个主的状态选择一台负载小的机器连接,然后就是进行写操作,由于写操作的是事务性的,这个事务会扩展到另一个主机上,也即如果在写操作时要锁定表,另一台主机器上的相同表也会被锁定。当事务提交时,被连接的主机器立马将相同的事务操作应用到另一台主机器上,从而实现两台机器的同步。从表面上看,写操作对两台机器都进行了操作,不旦没有节省时间和资源,还增大了开销,但从细节上来看还是有很多优点所在的。首先,只所以用多台主机器,是为了防止其中一台当机了,系统不能进行写操作,所以写的事务会同步到所有主机器上必须要做的。其次,在进行写操作时,对事务的缓冲只在真正连接的机器上,其它主机器只是同步事务,即锁定该锁定的,没有操作缓冲,只有在提交事务时,连接的机器才会把所做的更改发给其它主机器让其同步。所以这里来说,其它主机器没有太大的写操作开销。 这里也要注意,主机器之间的网络连通一定要好,否则会出现瓶颈。 以上写操作都未提到从机器。 我认为在写操作时,从机器也被扩展了事务(也可能没有),即该锁定的表也锁定了(也可能没有锁),在写事务提交时,并没有马上进行同步,这要根据当时的负载和网络连通情况,集群系统会挑一个“合适”的时机,让从机器跟主机器同步,所以这里会有一定的延时,也就是当你写完所,你通过连接读的虚拟IP获取的数据不一定就包括了你先前的更改,除非你就用进行写操作的连接进行读操作,因为这两个机器连的都是同一台机器,所以一致。
好了,理解就暂时这么多,至于如何集群,现在没这个需要,到时再看。
分享到:
相关推荐
一、Mysql-mmm集群技术概述; 二、Mysql-mmm优缺点; 三、Mysql-mmm内部工作架构; 四、案例搭建Mysql-mmm+mysql 5.6双主高可用集群;
mysql-mmm多主集群解决方案,适合研究学习下,非常不错。
云环境MMM数据库集群双主多从架构模型构建.pdf
MySQL-MMM架构的基础:master1和...如果对外提供服务的master意外宕机了,这是MySQL本身并不具备failover切换的能力,尽管集群中仍然有一个正常的master节点,但应用仍不可用。mysql-mmm就是为了解决这个问题诞生的。
02-数据库概念介绍.avi 03-数据库种类介绍及关系型数据库原理.avi 04-非关系型数据库介绍.avi 05-非关系型数据库种类介绍.avi 06-关系型数据库产品介绍01.avi 07-关系型数据库产品介绍02.avi 08-非关系型数据库产品...
│ MySQL培训(10)_MySQL高可用方案之MMM.docx │ MySQL培训(10)_MySQL高可用方案之PXC安装与配置.pdf │ Percona_XtraDB_Cluster文档.pdf │ ├─L011-oldboy-mysql-dba-lesson11 │ 1101-MySQL命令工具_rec....
MySQL大型分布式集群 MHA MMM 读写分离 集群 分片切片
MySQL大型分布式集群 MHA MMM 读写分离 集群 分片切片
│ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优....
云平台是个好东西,MySQL-mmm的典型配置是需要五台机器,一台作为mmm admin,两台master,两台slave。一下子找五台机器真不容易,何况还要安装同样的操作系统。而有了cloud,简单几步就有了完备的实验环境:四台...
MySQL小型高可用架构方案:MySQL双主、主从+Keepalived主从自动切换服务器资源:两台PCServer优点:架构简单,节省资源缺点:无法线性扩展,主从失败之后需要手动恢复主从架构方案:MMM+MySQL双主+多从高可用方案...
MySQL-Proxy是处在你的MySQL数据库客户和服务端之间的程序,它还支持嵌入性脚本语言Lua。这个代理可以用来分析、监控...数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。MMM即Master-MasterReplicatio
1、数据库采用MYSQL 主主复制+MMM 高可用 2、Web 集群采用LVS+DR 模式,采用Keepalive 实现高可用 3、页面存储使用NFS 存储,使Web Server 同步信息相同 4、网管使用iptables 5、使用nagios 对所有服务器进行状态...
MMM即Multi-Master Replication Manager for MySQL:mysql多主复制管理器,基于perl实现,关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),MMM也能对从...
以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多...
本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的...如上所示,整个MySQL集群提供1个写VIP(VirtualIP)和N(N>=1)个读VIP提供对外服务。每个MySQL节点均部署有一个Agent(mm