memcached + keepalive高可用群集
memcached介绍
Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存
储在内存中,因为在内存中会统一维护一张巨大的哈希表,所以支持任意存储类型的
数据。很多网站通过使用Memcached提高网站的访问速度,尤其是对于大型的需要频
繁访问数据的网站。
Memcached是典型的C/S架构,因此需要安装Memcached服务端与Memcached
API客户端。Memcached服务端是用C语言编写的,而Memcached API客户端可以用
任何语言来编写,如PHP, Python, Perl等,并通过Memcached协议与Memcached服
务端进行通信。
memcached主从复制+ keepalive高可用框架介绍
Memcached服务器修改数据都会被同步到
另外一台,但是Memcached API客户端是无法判断连接到哪一台Memcached服务
器的,所以需要设置VP地址,提供给Memcached Apl客户端进行连接。可以使用
keepalive产生的副总裁地址连接主Memcached服务器,并且提供高可用架构。
因为Memcached主从复制这种架构,在程序连接主服务
器,在前端加副总裁地址,实现高可用架构。这里用keepalive实现,因而
keepalive的作用是用来检测Memcached服务器的状态是否正常。
keepalive不断检测Memcached主服务器的11211端口,如果检测到Memcached
服务发生宕机或者死机等情况,就会将副总裁从主服务器移至从服务器,从而实现
Memcached的高可用性。
实验准备
一台主服务器
需要安装磁铁memcached libevent keepalive
一台从服务器
需要安装memcached libevent keepalive
实验步骤
在主服务器和从服务器上安装memcached和libevent
<代码>焦油xzvf memcached-1.5.6.tar.gz 焦油xzvf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8 ./configure——prefix=/usr # #指定安装路径 使,,制作安装 cd memcached-1.5.6 ./configure——with-libevent=/usr 使,,制作安装 ln - s/usr/lib/libevent-2.1.so。6/usr/lib64/libevent-2.1.so。6 # #主服务器上磁铁服务需要这个模块 代码> >之前在主服务器上安装磁铁
<代码> mkdir/磁铁 焦油xzvf magent-0.5.tar.gz cd/磁铁 vim ketama.h 修改 的ifndef SSIZE_MAX #定义SSIZE_MAX 32767 vim Makefile 填词=levent - lm 使 cp磁铁工作# #方便系统识别命令代码>在主服务器上把磁铁复制到从服务器上
<代码> yum安装openssh-clients scp磁铁root@192.168.x.x:/usr/bin/<代码>在主服务器上安装keepalive
<代码> vim/etc/keepalived/keepalived.conf 路由器_id MAGENT_HA 删除 vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 定义新函数 vrrp_script磁铁{ 脚本“/opt/壳/magent.sh” 间隔2 # #时间间隔 } 修改vrrp_instance下面 接口ens33 添加 track_script { 磁铁 }# #使用新函数 定义一个虚拟IP virtual_ipaddress { 每个 } 下面多余的部分可以全部删除 代码> >之前在从服务器上安装keepalive
<代码> yum安装keepalive 从主服务器上把配置脚本复制到从服务器上 scp/etc/keepalived/keepalived。conf root@192.168.x.x。:/etc/keepalive/keepalived.conf vim/etc/keepalived router_id MAGENT_HB 状态备份# #从服务器 virtual_router_id 52 # # ID不同 priortity 90 # #优先级 代码> >之前在主服务器上配置磁铁脚本
<代码> mkdir/opt/壳 vim/opt/壳/magent.sh # !/bin/bash K=' p ef | grep keepalive | grep - v grep | wc - l ' 如果(K gt 0美元);然后 51200根磁铁- u - n - l 192.168.x。x - p 12000 - s 192.168.x。x: 11211 - b每个:11211 其他的 pkill 9磁铁 fi 51200 - n//定义用户最大连接数 - l 192.168.x。x//指定虚拟IP 12000 - p//指定端口号 - s//指定主缓存服务器 - b//指定从缓存服务器 chmod + x magent.sh 代码>在从服务器上配置磁铁脚本
<代码> mkdir/opt/壳 vim/opt/壳/magent.sh # !/bin/bash K=' ip addr | grep每个(虚拟ip) | grep - v grep | wc - l ' 如果(K gt 0美元);然后 51200根磁铁- u - n - l 192.168.x。x - p 12000 - s 192.168.x。x: 11211 - b每个:11211 其他的 pkill 9磁铁 fi chmod + x magent.shCentos7下实现memcached + keepalive高可用群集