kvproxy的数据主从复制简介

简介:
简介

kvproxy的一个很重要的特性是能实现主从集群间的数据同步。有点类似于mysql和redis的主从数据同步。之所以实现这个功能,是因为在使用memcached的时候,有些时候需要两个集群间保持数据一致。而memcached又没有提供类似的功能。如果想了解更多的kvproxy的一些特性,请查看博文

应用场景

一般需要搭建主从两个数据库集群的时候,可能会需要数据的同步。什么时候需要搭建两个集群呢?大概有这么几种情况。

场景一:
解决单点问题。如,用户登录的session使用一台memcached存储。如果这台memcached机器故障,可能会导致全部用户登录状态丢失。这种情况下,可以再启动一个memcached,用于备份。

场景二:
解决网络延迟问题。如,你的应用部署在两个机房。而两个机房的网络延迟比较大。如果只在一个机房部署memcached集群,可能会导致响应时间明显加大,很大的影响了用户体验。这时,就需要在两个机房各部署一个memcached集群。处理请求时,只使用本机房的memcached。

主从数据复制策略

kvproxy支持两种类型的数据复制策略。即,同步复制和异步复制。

同步复制

同步复制就是,当有数据写操作(set delete add 等)时,先写主集群,然后写从集群,两个集群都写完后,最后给客户端响应。
优点:能保证数据的及时同步到从集群。
缺点:客户端等待时间过长。

异步复制

异步复制就是,当数据写操作(set add 等)时,先谢主集群,然后给客户端响应,最后写从集群。
优点:能快速响应客户端。
确定:数据同步有延迟。

如何使用

首先,在配置文件中建立两个集群。组名可以随意定。主集群叫master,从集群叫slave。

其次,在配置文件中修改hosts和hosts_backup两个配置项。hosts配置项用于设置主集群名。hosts_backup配置项用于设置从集群名。

最后,设置同步复制key前缀。如,我们设置sync_str = '+',那么只要key是以+开头的,都使用同步复制。否则,使用异步复制。

配置文件示例如下:


[memcached]
 ; 扩展文件名。
extension=memcached.so
 ; 设置默认后端集群。
hosts=master
 ; 设置备份集群。所有的写操作命令都会同步到此集群一份。如果未设置,将不进行数据的同步或者异步复制。
;hosts_backup=slave
 ; 同步数据复制前缀符号。默认的数据复制为异步复制。如果想数据复制为同步复制,可以把key的前缀设置为指定字符串
sync_str = “+”
; 使用的协议类型 binary 二级制协议 text 文本协议
proto = binary
 ;;;;;;;;;;;;;;;;
 ; 集群设置 ;
 ;;;;;;;;;;;;;;;;
 ; 集群名
[master]
 ; ip : 端口号 = “在集群中的标示数字id : 权重”
; 同一组中每个后端服务器的标示数字id不能重复
127.0.0.1:11211=”1:50″
 127.0.0.1:11212=”2:50″
 [slave]
 127.0.0.1:11212=”1:50″
 127.0.0.1:11213=”2:100″
 127.0.0.1:11214=”3:50″ 

目录
相关文章
|
机器学习/深度学习 存储 SQL
全栈开发之MySQL主从同步,读写分离后可能引发的问题
全栈开发之MySQL主从同步,读写分离后可能引发的问题
357 0
全栈开发之MySQL主从同步,读写分离后可能引发的问题
|
8月前
|
SQL 负载均衡 关系型数据库
MySQL主从复制的原理与实操+mycat2读写分离
MySQL主从复制的原理与实操+mycat2读写分离
136 0
|
8月前
|
SQL canal 缓存
主从复制原理
MySQL binlog(binary log 即二进制日志文件) 主要记录了 MySQL 数据库中数据的所有变化(数据库执行的所有 DDL 和 DML 语句)。因此,我们根据主库的 MySQL binlog 日志就能够将主库的数据同步到从库中
42 0
主从复制原理
|
9月前
|
SQL 算法 关系型数据库
mysql主从复制的原理和实战
mysql主从复制的原理和实战
|
10月前
|
SQL 负载均衡 前端开发
案例:MySQL主从复制与读写分离
案例:MySQL主从复制与读写分离
|
12月前
|
SQL 缓存 算法
【MySQL】主从复制(重点:主从复制原理)
本文重点介绍MySQL的主从复制概述,作用,原理,同步数据一致性问题。
116 0
|
SQL 关系型数据库 MySQL
MyCat - 高级 - 读写分离 - MySQL 主从复制原理 | 学习笔记
快速学习 MyCat - 高级 - 读写分离 - MySQL 主从复制原理
97 0
MyCat - 高级 - 读写分离 - MySQL 主从复制原理 | 学习笔记
|
SQL 存储 关系型数据库
MyCat - 高级 - 读写分离 - 主从复制(一主一从)搭建 | 学习笔记
快速学习 MyCat - 高级 - 读写分离 - 主从复制(一主一从)搭建
118 0
MyCat - 高级 - 读写分离 - 主从复制(一主一从)搭建 | 学习笔记
|
NoSQL Redis 开发者
主从复制简介|学习笔记
快速学习主从复制简介
71 0
主从复制简介|学习笔记
|
NoSQL 开发工具 Redis
主从复制-搭建主从结构|学习笔记
快速学习主从复制-搭建主从结构
53 0