Centos7下实现memcached + keepalive高可用群集

  

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.sh 

Centos7下实现memcached + keepalive高可用群集