设为首页 收藏本站
查看: 1815|回复: 0

[经验分享] 持久性session连接之memcached高可用法案

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-26 08:56:17 | 显示全部楼层 |阅读模式
   关于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:
[iyunv@localhost libevent-1.4.14b-stable]# ./configure --prefix=/usr
[iyunv@localhost libevent-1.4.14b-stable]# make && make install
2、安装memcached:
[iyunv@localhost memcached-1.4.20]# ./configure --with-libevent=/usr
[iyunv@localhost memcached-1.4.20]# make && make install
3、安装repcached:

[iyunv@master src]# wget http://downloads.sourceforge.net ... epcached-2.2.tar.gz
[iyunv@master src]# tar zxf memcached-1.2.8-repcached-2.2.tar.gz
[iyunv@master src]# cd memcached-1.2.8-repcached-2.2
[iyunv@master memcached-1.2.8-repcached-2.2]#wget http://downloads.sourceforge.net ... -2.2-1.2.8.patch.gz
[iyunv@master memcached-1.2.8-repcached-2.2]# gzip -cd ../repcached-2.2-1.2.8.patch.gz | patch -p1
[iyunv@master memcached-1.2.8-repcached-2.2]# ./configure --enable-replication
[iyunv@master memcached-1.2.8-repcached-2.2]#  make
[iyunv@master memcached-1.2.8-repcached-2.2]#  make install
[iyunv@master memcached-1.2.8-repcached-2.2]# cd ..
#主和从的安装步骤是一样的,这里只在主节点操作:

四、启动设置主从:
1、启动master:
[iyunv@localhost ~]# memcached -v -d -p 11211 -l 192.168.63.129 -u root -P /tmp/memcached1.pid
[iyunv@localhost ~]# replication: listen
2、启动backup:
[iyunv@mysql ~]# memcached -v -d -p 11211 -l 192.168.63.132 -u root -x 192.168.6
3.129 -P /tmp/memcached1.pid         
[iyunv@mysql ~]# replication: connect (peer=192.168.63.129:11212)
3、查看主是否连接成功:
[iyunv@localhost ~]# replication: listen
replication: accept                    #accept已经是master
五、测试:
1、主节点插入数据:
[iyunv@localhost ~]# 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、从节点查看:
[iyunv@mysql ~]# 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、断开主节点,从节点自动监听,然后上升为主节点。

[iyunv@localhost ~]# ps -ef | grep memcached | awk '{print $2}' | xargs kill -9
kill 2222: No such process
从节点变成监听状态:
[iyunv@mysql ~]# replication: close
replication: listen
4、登录节点测试:
[iyunv@mysql ~]# 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、原理主节点修复好之后,我们启动它。让他变成从节点*
[iyunv@localhost ~]#  memcached -v -d -p 11211 -l 192.168.63.129 -u root -x 192.168.63.132 -P /tmp/memcached.pid           
[iyunv@localhost ~]# replication: connect (peer=192.168.63.132:11212)
replication: marugoto copying
replication: start
现在129成了从节点。登录看一下数据复制过来了没有:
[iyunv@localhost ~]# 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主从同步差不多一致的步骤。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38863-1-1.html 上篇帖子: php web分布式后,memcache存session实现多域名跨域登录 下篇帖子: Memcached常用命令及使用说明 持久性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表