zoukankan      html  css  js  c++  java
  • 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更新数据时部分更新成功怎么处理,落错误日志或者给运维人员生成告警信息。


  • 相关阅读:
    zoj 3620 Escape Time II dfs
    zoj 3621 Factorial Problem in Base K 数论 s!后的0个数
    bzoj 1789: [Ahoi2008]Necklace Y型项链 贪心
    BZOJ 4027: [HEOI2015]兔子与樱花 树上dp
    Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
    图论:单源最短路与多源最短路问题
    图论:图的概念与图的储存方式
    hdu 4802 GPA 水题
    Codeforces Round #202 (Div. 1) A. Mafia 贪心
    Spring Bean配置默认为单实例 pring Bean生命周期
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/4660749.html
Copyright © 2011-2022 走看看