持久性session连接之memcached高可用法案

关于session持久性连接,我们大多都使用memcached做为缓存服务器。但是众所周知memcached具有的是单点故障的风险。针对于这个问题上次公司更新代码的情况做一下简述:

凌晨开发执行了几条sql语句之后跟更新代码。在验证收款的时候测试遇到这样一个问题。就是当我们用户要登录的时候已经输入了验证码。百分百确认没有输错,但是就是连不上,过一会又好了。忙活了大半天。觉得是不是session的问题,原本是存在memcached的临时信息,但是memcached出现了问题。直接从后端数据库读取,又读取新的数据了。于是重新做一个memcached,验证就没有问题了。(但是我有一点想不明白就是加入说定义的增长因子不对导致,memcached不够存,按理说memcached应该是会满了自动清理的,除非增长因子过大,而且数据太高,但是就是这样解决了,想不明白思路希望大家指教)

所以我觉得memcached高可用性还是很有必要的,查看了文档之后构建了下面的环境:

一、环境说明(使用repcached对memcached值进行复制):

memcached主:192.168.63.129   centos64

memcached从:192.168.63.132   contos64

二、安装步骤:

1、一般基于事物的我们都会安装libevent:

[[email protected] libevent-1.4.14b-stable]# ./configure --prefix=/usr

[[email protected] libevent-1.4.14b-stable]# make && make install

2、安装memcached:

[[email protected] memcached-1.4.20]# ./configure --with-libevent=/usr

[[email protected] memcached-1.4.20]# make && make install

3、安装repcached:

[[email protected] src]# wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz

[[email protected] src]# tar zxf memcached-1.2.8-repcached-2.2.tar.gz

[[email protected] src]# cd memcached-1.2.8-repcached-2.2

[[email protected] memcached-1.2.8-repcached-2.2]#wget http://downloads.sourceforge.net/repcached/repcached-2.2-1.2.8.patch.gz

[[email protected] memcached-1.2.8-repcached-2.2]# gzip -cd ../repcached-2.2-1.2.8.patch.gz | patch -p1

[[email protected] memcached-1.2.8-repcached-2.2]# ./configure --enable-replication

[[email protected] memcached-1.2.8-repcached-2.2]#  make

[[email protected] memcached-1.2.8-repcached-2.2]#  make install

[[email protected] memcached-1.2.8-repcached-2.2]# cd ..

#主和从的安装步骤是一样的,这里只在主节点操作:

四、启动设置主从:

1、启动master:

[[email protected] ~]# memcached -v -d -p 11211 -l 192.168.63.129 -u root -P /tmp/memcached1.pid

[[email protected] ~]# replication: listen

2、启动backup:

[[email protected] ~]# memcached -v -d -p 11211 -l 192.168.63.132 -u root -x 192.168.6

3.129 -P /tmp/memcached1.pid

[[email protected] ~]# replication: connect (peer=192.168.63.129:11212)

3、查看主是否连接成功:

[[email protected] ~]# replication: listen

replication: accept                    #accept已经是master

五、测试:

1、主节点插入数据:

[[email protected] ~]# telnet 192.168.63.129 11211

Trying 192.168.63.129...

Connected to 192.168.63.129.

Escape character is ‘^]‘.

set key 0 0 2

xi

STORED

quit

Connection closed by foreign host.

2、从节点查看:

[[email protected] ~]# telnet 192.168.63.132 11211

Trying 192.168.63.132...

Connected to 192.168.63.132.

Escape character is ‘^]‘.

get key

VALUE key 0 2

xi

END

3、断开主节点,从节点自动监听,然后上升为主节点。

[[email protected] ~]# ps -ef | grep memcached | awk ‘{print $2}‘ | xargs kill -9

kill 2222: No such process

从节点变成监听状态:

[[email protected] ~]# replication: close

replication: listen

4、登录节点测试:

[[email protected] ~]# telnet 192.168.63.132 11211

Trying 192.168.63.132...

Connected to 192.168.63.132.

Escape character is ‘^]‘.

get key

VALUE key 0 2

xi

END

数据完整复制过来。

5、原理主节点修复好之后,我们启动它。让他变成从节点*

[[email protected] ~]#  memcached -v -d -p 11211 -l 192.168.63.129 -u root -x 192.168.63.132 -P /tmp/memcached.pid

[[email protected] ~]# replication: connect (peer=192.168.63.132:11212)

replication: marugoto copying

replication: start

现在129成了从节点。登录看一下数据复制过来了没有:

[[email protected] ~]# telnet 192.168.63.129 11211

Trying 192.168.63.129...

Connected to 192.168.63.129.

Escape character is ‘^]‘.

get key

VALUE key 0 2

xi

END

到这来可以看到数据又完整恢复了。可以看到这个是跟Mysql主从同步差不多一致的步骤。

时间: 2024-11-06 07:23:21

持久性session连接之memcached高可用法案的相关文章

Memcached高可用群集

Memcached高可用群集 主服务器安装Memcached.magent.libevent 安装 libevent memcached magent (主服务器) [[email protected] asd] cd /opt/libevent-2.1.8-stable [[email protected] libevent-2.1.8-stable] ./configure --prefix=/usr/ [[email protected] asd] cd /opt/memcached-1.

领会Memcached高可用群集(Memcached主主复制+Keepalived)

10月3号我写了高性能内存缓存对象缓存Memcached原理 (Memcached核心概念,部署),本片将Memcached高可用群集(Memcached主主复制+Keepalived)掌握一下. memcached高可用集群原理及介绍: memcached在实现分布式群集部署时,memcached服务之间是不能进行通讯的,分布式也是通过客户端的算法吧数据保存在不同的memcached中,所以当我们做完群集客户端往一个memcached节点写入数据后,另外两个节点是查询不到的. 那么如何结局额这

memcached高可用

memcached-1.2.8-repcached-2.2.tar.gz tar zxvf memcached-1.2.8-repcached-2.2.tar.gz cd memcached-1.2.8-repcached-2.2 ./configure --prefix=/usr/local/repcached --with-libevent=/usr/local/libevent/ --enable-replication --program-transform-name=s/memcach

Windows Server 2016之RDS部署之添加RD连接代理的高可用

根据以下概述,上片我简单写了一下RDS添加RD虚拟化主机,如下简单介绍RD连接代理的高可用:慢慢完善RDS整个部署,请敬请期待吧! 主题 部署环境 先决条件 配置高可用 添加服务器 部署环境 RD连接代理我这里也是使用的Windows Server 2016,这里只介绍RDCB服务器 编号 服务器名称 IP地址 操作系统 001 RDCB1 192.168.1.205 Windows Server 2016 Datacenter Evaluation 002 RDCB2 192.168.1.20

Nginx+Tomcat+memcached高可用会话保持

一.概述 之前文章已经描述了企业高可用负载相关的架构及实现,其中常用的nginx或haproxy,LVS结合keepalived做前端高可用调度器;但之前没有提到会话高可用保持;本文通过 Tomcat Session Replication Cluster(tomcat自带)和tomcat结合memcat及第三方组件实现Tomcat Memcache Session Server高可用会话缓存服务;实现的效果:同一客户端访问业务网站,经过调度器负载调度到达后端,不管选择的是那个后端,sessio

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

Memcached高可用方案收集(集群及分布式)

Memcached的集群方案有很多,不止magent一个,但是单靠集群软件去实现高可用感觉还是会缺少一步,最推荐的方案应该是软件加编码去实现高可用,至少能保证站点的99.5%的可运行行,以下是集群的方案收集: randy_shandong: memcached演练(1) 搭建memcached服务 memcached演练(2) 访问memcached服务 单台tomcat的session信息的2种持久化方式 memcached演练(3) 使用apache+搭建双节点tomcat集群 memcac

Memcached 主主复制+ Keepalived 实现 Memcached 高可用架构集群

Memcached +keepalived 高可用集群 Memcached 主主复制这种架构,在程序连接时不知道应该连接哪个主服务器,所以需要在前端增加 VIP 地址,实现高可用架构.这里用 Keepalived 实现,因而 Keepalived 的作用就是用来检测 Memcached 服务器的状态是否正常. Keepalived 不断检测 Memcached 主服务器的11211端口,如果检测到 Memcached 服务发生宕机或者死机等情况,就会将 VIP 从主服务器移至从服务器,从而实现

Memcached高可用群集(Memcached主主复制+Keepalived)

案例说明 为解决memcached单点故障,需要实现memcached缓存的高可用.首先,需要实现Memcached的主主复制,指任意一台memcached服务器修改数据都会被同步到另外一台,但是memcached API无法判断连接哪一台服务器,因此需要VIP.其次,通过Keepalived产生的VIP连接memcached服务器,提供高可用架构. 案例拓扑 案例环境 主机 IP地址 操作系统 主要软件 Memcached 1 192.168.37.128 Centos7 libevent:m