从复制模式上来讲,HBase支持主从、主主两种复制模式,也就是经常说的Master-Slave、Master-Master复制。 2.Master-Master Master-Master复制与Master-Slave类似,主要的不同在于,在Master-Master复制中,两个Master地位相同,都可以进行读取和写入。 既然Master-Master两个Master都可以进行写入,万一出现一种情况:两个Master上都进行了对同一表的相同Column Family的同一个rowkey进行写入,会出现什么情况? 所以,在做Master-Master高可用时,确保两边写入的表都是不同的,这样能防止上述数据不一致问题。 接下来我们再看下Master-Master模式的复制,配置的时候与Master-Slave模式不同的是,在Master上添加完复制关系后,需要在另外一台Master也添加复制关系,而且两边的cluster_id
slave扮演不同的作用(例如使用不同的索引,或者不同的存储引擎); (2) 用一个slave作为备用master,只进行复制; (3) 用一个远程的slave,用于灾难恢复; 4.2、主动模式的Master-Master (Master-Master in Active-Active Mode) Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。 主动的Master-Master复制有一些特殊的用处。例如,地理上分布的两个部分都需要自己的可写的数据副本。这种结构最大的问题就是更新冲突。 4.3、主动-被动模式的Master-Master(Master-Master in Active-Passive Mode) 这是master-master结构变化而来的,它避免了M-M的缺点,实际上 4.4、带从服务器的Master-Master结构(Master-Master with Slaves) 这种结构的优点就是提供了冗余。
扮演不同的作用(例如使用不同的索引,或者不同的存储引擎); (2) 用一个slave作为备用master,只进行复制; (3) 用一个远程的slave,用于灾难恢复; 4.2、主动模式的Master-Master (Master-Master in Active-Active Mode) Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。 主动的Master-Master复制有一些特殊的用处。例如,地理上分布的两个部分都需要自己的可写的数据副本。这种结构最大的问题就是更新冲突。 4.3、主动-被动模式的Master-Master(Master-Master in Active-Passive Mode) 这是master-master结构变化而来的,它避免了M-M的缺点,实际上 4.4、带从服务器的Master-Master结构(Master-Master with Slaves) 这种结构的优点就是提供了冗余。
前言 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication 进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。
MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入 mmm_agentd 运行在mysql服务器上的代理守护进程,通过简单远程服务集提供给监控节点 l mmm_control 通过命令行管理mmm_mond进程 在两个节点的master-master
可能是Master-Master架构,就是两个数据中心都是可写的,或者是Master-Slave架构,一个写另一个读,具体使用哪种,需要依业务场景来设计。 Master-Master存储架构 Master-Master架构,处理数据一致性是个很大的挑战,两个数据中心之间因地理位置较远,存在较大的延迟。 架构层次上看是Master-Master,在用户数据纬度看是Master-Slave模式,每条数据只能在用户归属的数据中心写入,再通过异步复制方式写到其他数据中心中。 ?
Master-Master replication manager for MySQL(MMM) MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序 MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热
CouchDB 所用语言: Erlang 特点:DB一致性,易于使用 使用许可: Apache 协议: HTTP/REST 双向数据复制 持续进行或临时处理 处理时带冲突检查 因此,采用的是master-master 需要不时地进行数据压缩 视图:嵌入式 映射/减少 格式化视图:列表显示 支持进行服务器端文档验证 支持认证 根据变化实时更新 支持附件处理 因此,CouchApps(独立的 js应用程序) 需要 jQuery程序库 master-master master-master复制对于多站点部署是非常有用的。 2. :兼容 Memcache,但同时兼具持久化和支持集群 使用许可: Apache 2.0 协议:分布式缓存及扩展 非常快速(200k+/秒),通过键值索引数据 可持久化存储到硬盘 所有节点都是唯一的( master-master
Master-Master:主主同步,仅其中 1 个 Master 提供读写服务。max_connection 设为 3000。 实验结果分析 实验 1: [MGR] vs [Master-Master] 实验目的: 获取通过应用(sysbench)直连 MGR 的 2 个只读实例数所能带来的 QPS 上限,确认该上限和应用直连 mysql Master-Master 中其中 1 台的 QPS 差异。 MGR QPS 上限约 100w,约为 Master-Master 的 2.67 倍。 增加负载均衡后,QPS 最大值为 42w,约 MGR 上限的 50%,仅为 Master-Master 的 1.135 倍。
4.2、主动模式的Master-Master(Master-Master in Active-Active Mode) Master-Master复制的两台服务器,既是master,又是另一台服务器的slave 如图: 主动的Master-Master复制有一些特殊的用处。例如,地理上分布的两个部分都需要自己的可写的数据副本。这种结构最大的问题就是更新冲突。 4.3、主动-被动模式的Master-Master(Master-Master in Active-Passive Mode) 这是master-master结构变化而来的,它避免了M-M的缺点,实际上 4.5、带从服务器的Master-Master结构(Master-Master with Slaves) 这种结构的优点就是提供了冗余。
因此,采用的是master-master复制(见编注2) 9. MVCC – 写操作不阻塞读操作 10. 可保存文件之前的版本 11. Crash-only(可靠的)设计 12. 需要 jQuery程序库 21. master-master复制是一种数据库同步方法,允许数据在一组计算机之间共享数据,并且可以通过小组中任意成员在组内进行数据更新。 master-master复制对于多站点部署是非常有用的。 2. Redis 1. 所用语言:C/C++ 2. 特点:运行异常快 3. 使用许可: BSD 4. 协议:类 Telnet 5. 所有节点都是唯一的( master-master复制) 8. 在内存中同样支持类似分布式缓存的缓存单元 9. 写数据时通过去除重复数据来减少 IO 10. 提供非常好的集群管理 web界面 11.
~]# ps faux | grep ssdb | grep -v grep [root@h101 ~]# SSDB相关配置可以参阅SSDB配置 SSDB相关命令可以参阅SSDB命令 ---- master-master
auto_increment_increment = 2 这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了 的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master
介绍 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。 MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,可以说是mysql主主复制管理器。
主动模式的Master-Master(Master-Master in Active-Active Mode) Master-Master复制的两台服务器,既是master,又是另一台服务器的slave 主动的Master-Master复制有一些特殊的用处。例如,地理上分布的两个部分都需要自己的可写的数据副本。这种结构最大的问题就是更新冲突。 主动-被动模式的Master-Master(Master-Master in Active-Passive Mode)这是master-master结构变化而来的,它避免了M-M的缺点,实际上,这是一种具有容错和高可用性的系统 带从服务器的Master-Master结构(Master-Master with Slaves) 这种结构的优点就是提供了冗余。
因此我们的任务是需要保证两个数据中心的数据一致性,另外Master-Master架构是个必选项,也即两个数据中心都需要可写。 【(2) Master-Master 存储架构】 Master-Master架构下数据的一致性是个很大的问题。 从整体存储上看,这是一个Master-Master的架构,但细到一个具体用户的数据,则是Master-Slave模式,每条数据只能在用户归属的数据中心可写,再异步复制到其他数据中心。 图 8 多数据中心的数据Master-Master架构 【(3)数据中心间的数据一致性】 这个Master-Master架构可以在不同数据中心间实现数据最终一致性。
redis分布式锁 redis的分布式锁实现比zookeeper分布式锁实现复杂,也分为redis单实例和多实例(master-master)实现方式。 优点:性能高 缺点:单实例会有单点问题,多实例主从切换会导致数据丢失,master-master集群模式实现复杂。
--------------------------------------------------------- •CouchDB •特性:双向复制\连续或ad-hoc\冲突检测\主主复制(master-master
(2)配置Master-Master复制 在db1(master1)、db2(master2)、db3(slave)上编译my.conf #vi /etc/my.cnf [mysqld] datadir
高可用性 huststore 整体架构支持 Replication (master-master),支持 load balance 。 由于 hustdb 的存储节点采用了 master-master 的结构,当某一个存储节点挂掉时,HA 会自动将请求打到另外一台 master,同时 HA 会按照自动进行负载均衡,将数据分布存储在多个