`
qianshangding
  • 浏览: 124773 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Memcached之HA架构(9)

 
阅读更多

关于magent的安装,在上篇已经讲过,请查看:Memcached之代理服务magent(8)

magent简介

1,和Memcached一样,也是基于libevent的事件驱动模型。从安装magent就能看得出来,必须先安装libevent包。

2,支持ketama的一致性算法。

3,支持Memcached的二进制协议,实现请求转发。

4,magent和每个memcached保持多个长连接,以实现数据的实时同步和主从节点的检测。

5,magent根据集群来做备份的。当Memcached命令发送到某台已经挂掉的Memcached服务器时,命令将会转发到Memcached backup集群中。

magent根据集群来做备份的

magent根据集群来做备份的

magent根据集群来做备份的

重要的事情说三遍,哈哈。那magent根据集群来做备份是怎么回事呢?其实就是magent启动命令中所有的-s参数的主节点组成一个集群,-b参数的backup节点组成一个集群。backup节点组成的集群会备份主节点组成集群的数据,当Memcached命令发送到某台已经挂掉的Memcached服务器时,命令将会转发到Memcached backup集群中,当挂掉的主节点上线,所有操作都会在主节点执行,但是因为Memcached挂掉后数据不存在,所以会造成之前的数据无法获取。

magent工作方式

1,get操作,先到主Memcached上读取;如果失败,再到备份Memcached上读取,这样就会导致两次读。
2,如果一次gets多个key的值,会逐个执行1中的步骤。
3,Magent解析出客户端发送的命令,然后向映射到的Memcache服务器发送命令,如果Memcache服务器连接不上,Magent会向backup Memcached集群发送命令。
3,delete,incr,decr,add,set,replace,prepend,append,cas同时操作主Memcached和备份的Memcached。写操作:先操作备份Memcached,再操作普通的Memcached。


基于Magent的HA架构图:

一个Magent对应一个主Memcached和一个Backup Memcached。客户端连接到各个Magent,组成一个集群。

客户端只连一个Magent,这个Magent包含多个主Memcached,和多个从Memcached。Backup集群备份主节点集群。

Magent和Memcached混合使用:


还有另外一个Memcached代理工具moxi(先知),看这个名字就很diao了,不过我没有用过,大家有兴趣可以了解下。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics