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

memcached构建集群分析之一的更多相关文章
- Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)
本次主要是在win7 64 上演示操作. web应用构建 Memcached安装配置启动 Tomcat配置 所需jar包 memcached-session-manager 序列化 contextxm ...
- Memcached【Magent+Memcached】集群
Memcached介绍 事件处理libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口.即使对服务器的连接数增加,也能发挥O(1)的性能 ...
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...
- 使用Akka构建集群(二)
前言 在<使用Akka构建集群(一)>一文中通过简单集群监听器的例子演示了如何使用Akka搭建一个简单的集群,但是这个例子“也许”离我们的实际业务场景太远,你基本不太可能去做这样的工作,除 ...
- 使用Akka构建集群(一)
概述 Akka提供的非常吸引人的特性之一就是轻松构建自定义集群,这也是我要选择Akka的最基本原因之一.如果你不想敲太多代码,也可以通过简单的配置构建一个非常简单的集群.本文为说明Akka集群构建的学 ...
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析
/mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据 ...
- Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...
- Docker 0x13: Docker 构建集群/服务/Compose/分布式服务栈
目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 ...
随机推荐
- Windows下免费、开源邮件服务器hMailServer
Windows下免费.开源邮件服务器hMailServer 一.Windows下搭建免费.开源的邮件服务器hMailServer 二.邮件服务器hMailServer管理工具hMailServer A ...
- 编译pure-ftpd时提示错误Your MySQL client libraries aren't properly installed
如果出现类似configure: error: Your MySQL client libraries aren’t properly installed 的错误,请将mysql目录下的 includ ...
- ionic安装拍照选照片插件
1.安装插件,也可以用ionic plugin add .... phonegap local plugin add https://git-wip-us.apache.org/repos/asf/c ...
- 配置ORACLE 客户端连接到数据库
--================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle ...
- 给table中某一列的文字右对齐
一般来说,没写过jquery的前端人员,肯定是定义一个class,给每一行的那列加上align_r{text-align:right}.这是很麻烦的. 所以用jquery来写,可以$("ta ...
- $( ).focus()与$( )[0].focus()区别
$( #id).focus()与$( #id)[0].focus()没有区别,因为id必须是唯一的.如果同一页面出现多个相同的ID(这是不符合w3c规范的),$(#id)也只会拿到第一个该ID,后面的 ...
- java web 学习八(HttpServletResponse对象2)
一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
ylbtech-DatabaseDesgin:ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计 -- DatabaseName:通用表结构-- -- 主要是针对将要设计的表对象, ...
- windows远程连接linux桌面---使用tightvnc或者tigervnc
一.安装tightvnc: tightvnc的安装在安装包中有详细的说明(README文件) 首先你要确保linux已经安装jpeg和zlib库, 2.编译 执行如下两个命令: [root@local ...
- Apache OFBiz 学习笔记 之 实体引擎
1.概述 entity engine和常见的ORM有一点很大的不同,他的mapping object只有一个 GenericEntity,称它的entity engine 为adaptive ...