本文章不是讲集群方案什么的
我不懂集群,今天牛同事给俺介绍了一下他的MysqlMMM集群,我这里做做笔记,记录我对集群的理解,以后后翻查。
数据库集群的特征就是 有多台机器,这多台机器上都有数据库, 这些数据库的数据是完全一样的,即相当于一套数据的多个副本。集群就是要保证这些副本的实时或准时实(可以延时一会)的同步,即如果一台机器上的数据更改时,集群系统要保证这个更改实时或准时实的应用到所有的机器上,实现数据同步。
集群主要解决两个问题:
1. 负载均衡:这个主要是解决访问量大的问题。一台机器的读写能力是有限的,当同时有大量用户访问的时候,仅一台机器可能就会因负载过大而垮掉。而使用集群后,集群系统会将访问量均衡到每台机器上,也即多台机器分担了访问量,这就达到了负载均衡的目的。
2. 当机:当只有一台机器时,如果这台机器因意外当机会需要停机维护,那么此时系统就不能访问,对于一些使用量大,使用频繁的系统而言,这样是肯定不行的。如果使用集群,只有集群中有一台机器还在运行,就能让系统继续运行下去,而且对于重新启动的机器,能很快的同步在停机时间用户所做的更改。我的当前公司很喜欢用顶这个词,当一台机器垮掉时,能立马有另一台机器顶上。
集群的方式和技术点:
由于俺对集群不了解,对于有几种方式更是不清楚,这里就以这个同事介绍的Mysql MMM集群记记。
这个集群用了5台机器,两个主(Master),两个从(Slave),一个用来监视。这里只介绍大概,具体的俺也不清楚。
5台机器都有一个IP,在集群时给两台主机器分配了同一个虚拟IP,这个虚拟IP主要用来进行写操作(事务性操作)。然后再为两个主和两个从每机分配一个虚拟IP,这些ip用于读操作。虚拟IP就是为了让集群系统来决定每一个访问所连接的机器(或数据库),从而达到负载平衡。给机器分为主和从,是为了让主作为作为写的主体,即所有写的操作都是在主上进行。主和从都可以作为读的主体,由于在平时访问中一般读取要远大于写操作,所以这里就机当于多出两台从机器用于读取负载。
当要进行写操作时,使用写的虚拟IP连接数据库,集群系统会跟据两个主的状态选择一台负载小的机器连接,然后就是进行写操作,由于写操作的是事务性的,这个事务会扩展到另一个主机上,也即如果在写操作时要锁定表,另一台主机器上的相同表也会被锁定。当事务提交时,被连接的主机器立马将相同的事务操作应用到另一台主机器上,从而实现两台机器的同步。从表面上看,写操作对两台机器都进行了操作,不旦没有节省时间和资源,还增大了开销,但从细节上来看还是有很多优点所在的。首先,只所以用多台主机器,是为了防止其中一台当机了,系统不能进行写操作,所以写的事务会同步到所有主机器上必须要做的。其次,在进行写操作时,对事务的缓冲只在真正连接的机器上,其它主机器只是同步事务,即锁定该锁定的,没有操作缓冲,只有在提交事务时,连接的机器才会把所做的更改发给其它主机器让其同步。所以这里来说,其它主机器没有太大的写操作开销。 这里也要注意,主机器之间的网络连通一定要好,否则会出现瓶颈。 以上写操作都未提到从机器。 我认为在写操作时,从机器也被扩展了事务(也可能没有),即该锁定的表也锁定了(也可能没有锁),在写事务提交时,并没有马上进行同步,这要根据当时的负载和网络连通情况,集群系统会挑一个“合适”的时机,让从机器跟主机器同步,所以这里会有一定的延时,也就是当你写完所,你通过连接读的虚拟IP获取的数据不一定就包括了你先前的更改,除非你就用进行写操作的连接进行读操作,因为这两个机器连的都是同一台机器,所以一致。
好了,理解就暂时这么多,至于如何集群,现在没这个需要,到时再看。
分享到:
相关推荐
MySQL-MM(Master-Master Replication Manager)是一种用于MySQL数据库的高可用性和负载均衡解决方案,它构建在MySQL主主...然而,正确配置和维护这样的系统需要深入理解MySQL复制原理和集群管理,以确保系统的稳定运行。
MySQL-MM(Master-Master Replication Manager)是一种针对MySQL数据库实现主主复制的高可用解决方案,旨在提供读写分离和故障切换的能力。MySQL-MM是社区维护的开源项目,它通过一个中间件来管理多个MySQL主主复制...
在搭建过程中,需要注意的是,MMM集群需要手动配置MySQL的复制关系,包括设置master节点的复制权限,配置master节点的binlog位置,以及配置slave节点指向正确的master节点。搭建过程中还需要确保所有节点之间的时间...
MySQL-MMM,全称为MySQL Master-...在使用MMM时,理解并正确配置这些参数和模式至关重要,以确保MySQL集群的稳定性和高可用性。在实际部署中,还需要根据具体需求和环境调整配置,确保在各种情况下都能提供可靠的服务。
MySQL-MMM架构部署完成后,可以通过客户端访问MySQL数据库集群。为了确保高可用性和数据一致性,需要合理地配置主从复制策略,并定期检查集群的状态。 - **主从复制** 在MySQL-MMM架构中,主从复制是实现高可用性...
### MySQL Master-Master Replication Manager (MMM):深入解析与应用 #### 概览 MMM(MySQL Master-Master Replication Manager)是一套灵活...通过对MMM的理解与合理配置,可以显著提高MySQL集群的可用性与稳定性。
总之,MySQL-MMm是一个强大的工具,可以帮助你构建高可用、高扩展的MySQL集群,但同时也需要注意其潜在的单点故障问题,并采取措施来解决。通过理解其工作原理和正确搭建,可以有效地提升MySQL系统的稳定性和可靠性...
云环境MMM数据库集群双主多从架构模型构建.pdf
MySQL-MMM,全称为“MySQL Multi-Master Replication”,是一个开源的、高可用性的解决方案,用于管理MySQL数据库的多主复制。它旨在提供一个灵活、可扩展的框架,以实现数据库集群的高可用性和容错性。在MySQL-MMM...
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....
- MMM HA:MySQL Multi-Master Replication Manager for High Availability,是 MMM复制管理器的高可用解决方案。 - MHA HA:Master High Availability,是提高数据库主从复制高可用性的工具。 - MySQL Fabric:...
这里我们主要探讨的是如何使用Amoeba与MySQL实现读写分离,以及如何利用Keepalived来构建MySQL的高可用集群。这两部分内容对于保障数据库服务的稳定性和效率至关重要。 **Amoeba+MySQL 读写分离** Amoeba 是一个...
MySQL大型分布式集群 MHA MMM 读写分离 集群 分片切片
MySQL Multi-Master Replication (MMM) 是一个高可用性解决方案,专为MySQL数据库设计,用于实现多主复制。MMM允许数据在多个主服务器之间进行实时同步,提供了容错能力和负载均衡,确保即使在一个或多个主节点故障...
MHA的架构设计不同于MMM(MySQL Master-Master Cluster),后者需要搭建主-主复制模式,而MHA只需构建基础的主-从复制结构即可。当主数据库出现故障时,MHA能够从现有的从数据库中选取一个来升级为主数据库,从而...