centos7.4 memcache 高可用方案搭建 (3 台)

本贴最后更新于 2185 天前,其中的信息可能已经事过境迁

centos7.4 memcache 高可用方案搭建

1. 方案选型

缓存方案的基本要求:避免单点故障;较好的性能和稳定性;便于运维管理。

常见方案如下:

  • A. 客户端直接访问多个 memcache 实例
    优点:简单,未引入新的节点;
    缺点:维护不方便,未实现集中管理;性能不满足,实例宕机后不能自动踢出(hash 到该实例的请求都要等到超时才能转到其他正常实例)。
  • B. magent 代理
    优点:简单,满足缓存对代理的大部分要求;
    缺点:无成熟案例;性能不满足,实例宕机后不能自动踢出。
  • C. moxi 代理
    优点:功能丰富,提供本地缓存、Memcache 实例数据复制等。
    缺点:无成熟案例;代码很久没更新。
  • D. twemproxy 代理
    优点:twitter 的成熟案例。
    缺点:主要配合是 twemproxy+redis,与 memcache 配合使用的案例较少;不支持缓存的复制功能。
  1. 下载地址:https://github.com/twitter/twemproxy
  2. docker 方案下载地址:https://github.com/elegos/docker-twemproxy
  • E. mcrouter
    优点:facebook 的成熟案例;功能强大,支持 Memcache 实例分组、实例复制功能,实例宕机后可自动踢出。
    缺点:一般用于 ubuntu 平台,在 centos 上安装较复杂。
  1. 下载地址:https://github.com/facebook/mcrouter
  2. docker 方案下载地址:https://github.com/kakerukaeru/mcrouter-docker

2. memcache 安装

Memcache 用到了 libevent 这个库用于 Socket 的处理,所以还需要安装 libevent,libevent 的最新版本是 libevent-1.3。(如果你的系统已经安装了 libevent,可以不用安装)

[root@memcache1 ~]# yum install libevent
yum -y install libevent-devel

下载 memcached

wget http://www.memcached.org/files/memcached-1.5.7.tar.gz
tar zxvf memcached-1.5.7.tar.gz
cd memcached-1.5.7
./configure
make -j8
make install

3. 启动 memcache

创建 memcached 启动用户

useradd memcache
passwd memcache

启动 memcache

chmod 777 -R /var/run/
memcached -m 32m -p 11211 -d -u memcache -P /var/run/memcached.pid -c 256 -vv

参数说明:

-d选项是作为守护进程在后台运行 
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, 
-u是运行Memcache的用户,我这里是root, 
-l是监听的服务器IP地址,如果有多个地址的话 
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, 
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, 
-P是设置保存Memcache的pid文件
-vv是以very vrebose模式启动,将调试信息和错误输出到控制台
[root@memcache1 memcached-1.5.7]# netstat -unlpt | grep 11211
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      10776/memcached     
tcp6       0      0 :::11211                :::*                    LISTEN      10776/memcached 

关闭 memcached 的命令为:

kill `cat /var/run/memcached.pid`

设置 memcache 自动启动

> vim /etc/init.d/memcached  # 新建memcached文件保存
> cp /usr/local/src/memcached-1.5.7/scripts/memcached.sysv /etc/init.d/memcached  #需要将脚本中的memcached目录改为自己的memcached目录即可
> chmod 755 /etc/init.d/memcached  #修改文件权限
> chkconfig --add memcached  #将memcache加入系统服务
> chkconfig memcached on
> service memcached start  #启动,也可以用/etc/init.d/memcached start

memcached 内容

安装 twemproxy
sbin/nutcracker -d -c /usr/local/nutcracker/conf/nutcracker.yml -p /usr/local/nutcracker/run/memproxy.pid -o /usr/local/nutcracker/run/memproxy.log

nc 192.168.31.226 22222 | python -mjson.tool

curl http://192.168.31.226:22222
  • 自动启动
vim  vim /etc/rc.local

/usr/local/nutcracker/sbin/nutcracker -d -c /usr/local/nutcracker/conf/nutcracker.yml -p /usr/local/nutcracker/run/memproxy.pid -o /usr/local/nutcracker/run/memproxy.log

chmod +x /etc/rc.d/rc.local

memcached 下载地址

  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • Memcached
    9 引用 • 6 回帖
  • 集群
    29 引用 • 65 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...