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″ 
时间: 2024-07-29 02:20:35

kvproxy的数据主从复制简介的相关文章

MySql数据引擎简介与选择方法_Mysql

一.数据引擎简介 在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中. 使用MySQL插件式存储引擎体系结构,允许数据库专 业人员为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求.采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的 应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节.因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的. MySQL支持数个存储

SQL Server 2005中XML数据建模简介

关系或 XML 数据模型 如果您的数据是高度结构化的,具有已知的架构,则关系模型可能对于数据存储最为有效.Microsoft SQL Server 提供了您可能需要的必要功能和工具.另一方面,如果结构是灵活的(半结构化和非结构化)或未知的,则必须适当地考虑如何对此类数据进行建模. 如果您需要独立于平台的模型,以便确保使用结构化和语义标记的数据的可移植性,则 XML 是一种不错的选择.而且,如果满足下列某些属性,则它还是一种适当的选择: • 您的数据比较稀疏,或者您不了解数据的结构,或者数据的结构

java实时数据集成简介

现在,复杂的"可热插拔"系统和面向服务的体系结构(SOA)得到了广泛应用,这使得将数据合理地整合在一起的难度日益增加.尽管您的主要应用程序数据库在Oracle数据库上运行,但是可能还有其他较小的系统在其他供应商提供的数据库和平台上运行.您的应用程序本身可以通过 Web服务之类的技术进行交互,应用程序和数据可以远程托管,也可以由您在企业数据中心内进行管理. Oracle Data Integrator属于Oracle融合中间件产品系列,它解决了异构程度日益增加的环境中的数据集成需求.它是

Oracle的表空间与数据文件简介

一.概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象:永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空间分类:系统表空间(system.sysaux),非系统表空间 一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间. 不可或缺的几个表空间: SYSTEM --->字典表空间,不能被损坏 UNDO    --->dml,dql把数据快照到此,数据提交即消失(用于恢复) SYSAUX    

Rational:JavaServer Faces数据模板简介

学习怎样使用和定制模板,以更轻松地控制 Web 页面的内容和外观 基于已有的 JavaBeans 或者其他数据源,IBM Rational Application Developer V7.5.4 使得创建 JavaServer Faces(JSF)控件变得更加容易.在您的数据集成到 Page Data 视图之后,您可以将数据拖拉到 Faces 页面上,您可以使用页面上的向导来选择您想要放置控件的类型 (Input Text fields,Output Text fields,Combo Box

Oracle的数据库、表空间及数据文件简介

数据文件是数据库的物理存储单位,而表空间TableSpace则是数据库的逻辑组成部分.数据库的数据是存储在表空间中的,而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间.一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行. 数据库,表空间,数据文件是紧密关联的,但它们有着重要的区别: 数据库和表空间 一个Oracle数据库由一个或多个叫做表空间的逻辑存储单元组成,表空间存储了所有数据库的数据. 表空间和数据文件 在Or

服务数据对象简介

简单地说,SDO是一种数据应用程序开发框架,它包括一个体系结构和相应的 API.SDO 能够实现以下操作: 简化 J2EE 数据编程模型. 抽象面向服务体系结构(SOA)中的数据. 统一数据应用程序的开发. 支持和集成 XML. 结合 J2EE 模式和最佳实践. 在这篇介绍 SDO 框架的文章中,我们将尝试着解释 SDO 背后的动机,以及 SDO 与其他规范的区别,然后描述 SDO 的组成,最后,通过一个示例 SDO 应用 程序说明 SDO 的用法. 为什么要使用 SDO? 对于服务数据对象(S

rsync开源高效地实现数据镜像备份简介

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   随着Linux系统的迅速发展和普及,很多中小企业用户都选择Linux作为应用平台.Linux作为服务器,其稳定.高效的特性得到了很多用户的肯定,同时也带来了一些问题,如需要实现数据的本地和异地备份,以保证数据安全.虽然有很多的商业备份软件可供选择,但是这些产品的价格往往过于昂贵,很多用户无法承受.因此,如何利用开源软件高效地实现数据的镜像备份和异地备份就成为一个

使用嵌套的Repeater控件显示分级数据

控件|数据|显示     简介       本文描述如何使用嵌套的Repeater 控件来显示分级数据 .当然了,你也可以将这一技术应用到其他的列表绑定控件上去,比如DataGrid包含DataGrid,DataList包含DataList等等的组合.       绑定到父表       1.添加一个新的Web Form 到应用程序项目中,名称为Nestedrepeater.ASPx.    2.从工具箱托动一个Repeater 控件到这个页面上, 设定其ID 属性为 parent .    3