青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

memcached构建集群分析之一

memcached本身是不支持集群的,集群所关注的容灾、容错、宕机恢复机制统统都没有,实战中需要自己实现容灾机制。

 

memcached集群相比memcached的优势:

巨量数据分布到集群的多台应用主机可以降低带宽压力、数据访问时间。

memcached集群相比未集群的多台memcached的优势:

集群系统的容灾机制保证了全天候的业务高可用性。

集群的某一台或者某几台服务器宕机,都会有备份服务器接管业务,根据容灾的级别,对客户的影响被隔离到无影响、闪断即恢复、中断数分钟~十数分钟。

集群封装了复杂的数据冗余机制和宕机恢复等机制,客户认为整个集群就是一台24小时不停息的战斗机器,耐力超群。

 

memcached构建集群的一种结构,借助Magent做缓存代理服务器,网上借图

按照该集群图;

客户端同缓存代理服务器建立连接;缓存代理服务器分别与3台主机、2台备机建立连接;

 客户端通过hash将key映射到不同的缓存代理服务器并向缓存代理服务器请求数据,客户端不关心缓存代理服务器后面的memcached是怎样的,可以百分百认为数据是可用的;

 缓存代理服务器将key进行hash后映射到memcached主机和备机,判断主机状态不可用或者获取数据失败时向备机请求数据,任何一次数据请求成功返回成功给客户端,全部请求失败返回失败给客户端。

memcached服务器的状态由缓存代理服务器接管,当主机宕机或者查询数据失败时向备机请求数据。

 

像不像去连锁店嘞,甭管北京、上海、香港还是大不列颠,进店点了可乐和薯条,随时都有并且都一样。

 

图只是方便讲解,不一定必须这种组网,容灾+备份可以N+1、1+1,要求一定的高可用性可以这样搞;主机和备机本身也可以是双机,然后采用N+1的容灾组网,起到双备份的作用,电信行业经常采用这种组网,代价高了点,断不起嘛。


额外的描述:

客户端连接多个memcached或者多个缓存代理服务器的时候通过hash映射来决定访问哪个节点;

缓存代理服务器访问memcached采用同样的方式。

缓存代理服务器向多台memcached更新数据时部分更新成功怎么处理,落错误日志或者给运维人员生成告警信息。


posted @ 2015-07-20 10:34  Leo.Z  阅读(432)  评论(0编辑  收藏  举报