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

memcached构建集群分析之一的更多相关文章

  1. Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)

    本次主要是在win7 64 上演示操作. web应用构建 Memcached安装配置启动 Tomcat配置 所需jar包 memcached-session-manager 序列化 contextxm ...

  2. Memcached【Magent+Memcached】集群

    Memcached介绍  事件处理libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口.即使对服务器的连接数增加,也能发挥O(1)的性能 ...

  3. 分布式搜索ElasticSearch构建集群与简单搜索实例应用

    分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...

  4. 使用Akka构建集群(二)

    前言 在<使用Akka构建集群(一)>一文中通过简单集群监听器的例子演示了如何使用Akka搭建一个简单的集群,但是这个例子“也许”离我们的实际业务场景太远,你基本不太可能去做这样的工作,除 ...

  5. 使用Akka构建集群(一)

    概述 Akka提供的非常吸引人的特性之一就是轻松构建自定义集群,这也是我要选择Akka的最基本原因之一.如果你不想敲太多代码,也可以通过简单的配置构建一个非常简单的集群.本文为说明Akka集群构建的学 ...

  6. Nginx+Tomcat+Memcached 实现集群部署时Session共享

    Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...

  7. 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析

    /mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据 ...

  8. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)

    准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...

  9. Docker 0x13: Docker 构建集群/服务/Compose/分布式服务栈

    目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 ...

随机推荐

  1. 通过AJAX与ASP.NET结合实现的仿GridView增删改查功能

    jQurey代码部分: 1.    <script type="text/javascript"> 2.            var flag = 0; 3. 4.  ...

  2. fancybox 关闭弹出窗口 parent.$.fancybox.close(); 无反应 fancybox 关闭弹出窗口父页面自动刷新,弹出子窗口前后事件

    当我们在父页面使用 fancybox 弹出窗口后,如果想自己手动关闭,则可以 function Cancel() { parent.$.fancybox.close(); } 如果关闭没有反应,最好看 ...

  3. live555学习之基本类介绍及计划任务深度探讨

    liveMedia项目的源代码包括四个基本的库,各种测试代码以及Media Server.四个基本的库分别是: UsageEnvironment&TaskScheduler, groupsoc ...

  4. 【JS】<c:foreach>用法

    <c:foreach>类似于for和foreach循环   以下是我目前见过的用法: 1.循环遍历,输出所有的元素. <c:foreach items="${list}&q ...

  5. 【转】话说我打算一天学完object c语法,系列1--------来自书Objective-c程序设计

    原文网址:http://blog.csdn.net/zengraoli/article/details/8993466 类型: NSString NSInteger NSLong控制台输出 NSObj ...

  6. .NET之美——1.1 C#中的泛型

    1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持.通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱.拆箱,在一定程度上提升 ...

  7. hdu 1078(dfs记忆化搜索)

    题意:容易理解... 思路:我开始是用dfs剪枝做的,968ms险过的,后来在网上学习了记忆化搜索=深搜形式+dp思想,时间复杂度大大降低,我个人理解,就是从某一个点出发,前面的点是由后面的点求出的, ...

  8. DBHelper (支持事务与数据库变更) z

    using System; using System.Data; using System.Data.Common; using Project.BaseFramework; using System ...

  9. 22、TTS技术

    Android对TTS技术的支持 Android 1.6开始支持TTS(Text To Speech)技术,通过该技术可以将文本转换成语音. TTS技术的核心是android.speech.tts.T ...

  10. 20、内存溢出(Out of Memory)

     内存引用(释放强引用) Object obj=new Object(); obj = null;  内存引用(使用软引用) 软引用是主要用于内存敏感的高速缓存.在jvm报告内存不足之前会清 除所 ...