全部博文(51)
分类: 系统运维
2017-11-09 17:34:00
没有不能重启的memcached
一.架构的部署
Client
|
Magent (ip 10.10.1.1:12000)
|
| (ip 10.10.1.2:11211) Normal Servers Farm Backup Servers Farm (ip 10.10.1.3:11211)
二.安装
1.在magent需要安装的包 libevent-1.4 memcached magent 2.在master和backup需要安装的包 libevent-1.4 memcached
三.安装步骤
#./configure --prefix=/usr #make && make install
安装memcached-1.4.0.tar.gz
#./configure --with-libevent=/usr #make && make install
安装magent-0.5.tar.gz
#make #cp magent /usr/local/bin
2.在master
安装libevent-1.4
#./configure --prefix=/usr/local/libevent #make && make install
安装memcached
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent #make && make install
3.在backup
#./configure --prefix=/usr/local/libevent #make && make install
安装memcached
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent #make && make install
四.使用
1.在master操作
#./memcached -d -m 128 -u root -l 10.10.1.2 -p 11211 -P /tmp/memcached.pid #netstart -ntlp 会出现
说明启动成功
2.在backup操作
#./memcached -d -m 128 -u root -l 10.10.1.3 -p 11211 -P /tmp/memcached.pid #netstart -ntlp 会出现
说明启动成功 3.在magent操作
#/usr/local/bin/magent -u root -n 51200 -l 10.10.1.1 -p 12000 -s 10.10.1.2:11211 -b 10.10.1.3:11211 -u root:以root用户启动 -n 51200:并发数51200 -l 10.10.1.1:监听的IP是10.10.1.1 -p 12000:端口是 12000 -s 10.10.1.2:10.10.1.2是正在运行的memcached -b 10.10.1.3:10.10.1.3是备份的memcached
实现目的:当10.10.1.2的memcached挂掉的时候接到12000端口的magent取数据,数据会从10.10.1.3的memcached读取缺点:就是当10.10.1.2复活后,magent读取数据就会自动的切换回10.10.1.2,而这时10.10.1.2的memcached没有数据。解决方案:不要在rclocal里面启动memcached,当主cached挂掉后,手工重启magent,颠倒主备的身份,
五.安装中常遇到的问题错误1: gcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c magent.c: In function ‘writev_list’: magent.c:729: error: ‘SSIZE_MAX’ undeclared (first use in this function) magent.c:729: error: (Each undeclared identifier is reported only once magent.c:729: error: for each function it appears in.) make: * [magent.o] Error 1
解决办法:
vim ketama.h
加入
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
错误2:各种找不到libevent。需要手工ln -s
OK magent就算搭建好了。这个时候memcached就很happy的运行了,不过magent成了单点。没关系,keepalived 就是了。