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

时间: 2024-08-05 01:39:26

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

使用Akka构建集群(二)

前言 在<使用Akka构建集群(一)>一文中通过简单集群监听器的例子演示了如何使用Akka搭建一个简单的集群,但是这个例子"也许"离我们的实际业务场景太远,你基本不太可能去做这样的工作,除非你负责运维.监控相关的工作(但实际上一个合格的程序员在实现功能的同时,也应当考虑监控的问题,至少应当接入一些监控系统或框架). 本文将介绍一个相对看来更符合我们对于集群使用的业务需求的例子--将客户端请求的字符串转换为大写(假如客户端真的没有这个能力的话). 服务端 本文的Akka配置继

Nginx+Memcached+Tomcat集群配置

1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性. 安装和配置Nginx的简单方式如下: 1)      下载并解压Nginx到本地目录:http://nginx.org/en/download.html 2)      对Nginx的配置主要是对它的配置文件/conf/nginx.conf的修改.如下链接是nginx.conf配置文件各个属性的详细说明:

nginx+memcached+tomcat集群 session共享完整版

nginx+memcached+tomcat集群 session共享完整版 集群环境 1.nginx版本 nginx-1.6.2.tar.gz 2.jdk 版本 jdk-7u21-linux-x64.tar.gz 3.tomcat 版本  7.0.29 4.memcached 版本 memcached-1.4.22.tar.gz 5. CentOS 6.5 系统采用一台服务做测试 一.nginx安装 安装依赖包 yum -y install gcc gcc-c++ 1.安装pcre库 tar z

nginx+tomact+memcached(缓存)集群

关于Nginx+tomcat+memcached(缓存)配置集群负载均衡的下载与安装流程: 实现的整体步骤 一:安装memcached.(memcached可以一个或者多个) 二:安装两个tomcat 三:配置msm. 四:安装nginx,实现负载均衡. 以下是详细步骤: 第一步:安装memcached 1.       下载memcached服务端memcached-1.2.6-win32-bin.zip,地址:csdn 第二步:安装tomcat 1.       安装两个tomcat6,如果

MemCached Client集群方案

MemCached Client集群方案 By mingjun Hou Cluster的实现 Memcached作为集中式Cache,就存在着集中式的致命问题:单点问题,Memcached支持多Instance分布在多台机器上,仅仅 只是解决了数据全部丢失的问题,但是当其中一 台机 器出错以后,还是会导致部分数据的丢失,一个篮子掉在地上还是会把部分的鸡蛋打破.因此就需要实现一个备份机制,能够保证Memcached在部分失效以后,数据还能够 依然使用,因 此做Cluster也是必要的. (1)  

Memcached缓存集群_创建多实例

1.首先在在服务端增加两个缓存实例,如192.168.120.101:11214和192.168.120.102:11215,空间分配可按实际需求定. 2.JAVA客户端导入 下载地址:http://files.cnblogs.com/files/zhougaojun/MemClient.zip 3.缓存集群配置:memcached11212.xml <?xml version="1.0" encoding="UTF-8"?> <memcached

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

一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Session在服务端保存用户信息,如果浏览器不支持Cookie或者用户把Cookie禁掉了,Cookie就用不了,还有不同的浏览器采用不用方式保存Cookie,所以我们采用Session服务端来保存,上一节我们有介绍了Tomcat集群部署,怎么样集群的Tomcat对同个用户请求的都能获取保存在Session的用户信息,采用了Memcached管理Session,Memcached 是一

Memcached 分布式集群

首先解释一下我的标题,用到了 分布式 和 集群两个单词,为什么是集群?解决[相同业务]问题的服务器多个以上就称为集群.这里memcached就是做相同任务的(提供缓存服务)为什么是分布式?虽然针对的是同样的任务(缓存),但是每一台memcached存储的数据不一样,这就叫分布式. 有很多架构是 分布式的但不叫集群(比如 把订单处理,和商品库存 分配到不同服务器上独立部署,这叫分布式),有很多是 集群架构但是不一定是分布式的(比如 应用服务器集群,每一台服务器上的资源一样) 通常来说一般的集群部署

【nginx+memcached+tomcat集群 session共享完整版】

集群环境 1.nginx版本 nginx-1.6.2.tar.gz 2.jdk 版本 jdk-7u21-linux-x64.tar.gz 3.tomcat 版本  7.0.29 4.memcached 版本 memcached-1.4.22.tar.gz 5. CentOS 6.5 系统采用一台服务做测试 阅读全文 更多java,java学习,java面试题 http://techfoxbbs.com