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

[经验分享] memcached+magent组成高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-4 08:26:15 | 显示全部楼层 |阅读模式
简介:
     使用magent架设memcached高可用,当主的挂掉以后,备机可以继续使用。

                 magent
                   |
----------------------------------------
|                   |                  |
memcached1     memcached2           memcached3
(master)       (master)             (backup)



一 安装memcached
   下载下面安装包
libevent-2.0.21-stable.tar.gz
memcached-1.4.32.tar.gz
magent-0.5.tar.gz



  • 安装libevent


tar –xzvf libevent-2.0.21-stable.tar.gz
cd   libevent-2.0.21-stable
./configure –prefix=/usr/local/libevent
make
make   install


  • 安装memcached


tar –xzvf memcached-1.4.32
cd   memcached-1.4.32
./configure   --prefix=/opt/memcached --with-libevent=/usr/local/libevent/
make
make   install





  • magent安装

下载安装包文件magent-0.5.tar.gz
解压tar –xzvf magent-0.5.tar.gz

make   #执行编译安装

把编译好的magent拷贝到/opt/memcached/bin/ 目录下



  • 安装报错解决方案


[iyunv@i-0boypofz   magent]# make
gcc   -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
magent.c:71:19:   error: event.h: No such file or directory
magent.c:130: error: field ‘ev’ has incomplete type
magent.c:161: error: field ‘ev’ has incomplete type
magent.c: In function ‘server_free’:
magent.c:494:   warning: implicit declaration of function ‘event_del’
magent.c:   In function ‘pool_server_handler’:
magent.c:514: error: ‘EV_READ’ undeclared (first use in this function)
magent.c:514:   error: (Each undeclared identifier is reported only once

# 解决办法,检查下libevent安装路径,如果自定义安装了,拷贝下路径库。
ln -s /usr/lib/libevent*  /usr/lib64/

[iyunv@i-0boypofz   magent]# make
gcc   -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

解决方法:
vi ./ketama.h  
#在开头加入   
#ifndef SSIZE_MAX
#define SSIZE_MAX        32767
#endif

#libm.a不存在的时候,需要拷贝下面so,如果没有,需要安装glibc glibc-devel
cp   /usr/lib64/libm.so /usr/lib64/libm.a

gcc   -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o   /usr/lib64/libevent.a /usr/lib64/libm.a
/usr/lib64/libevent.a(event.o):   In function `gettime':
/root/libevent-2.0.21-stable/event.c:370:   undefined reference to `clock_gettime'
/usr/lib64/libevent.a(event.o):   In function `detect_monotonic':
/root/libevent-2.0.21-stable/event.c:340:   undefined reference to `clock_gettime'
collect2:   ld returned 1 exit status
make:   *** [magent] Error 1

解决方法:

vi   Makefile
CFLAGS   = -Wall -g -O2 -I/usr/local/include $(M64)
改为:   
CFLAGS   = -lrt -Wall -g -O2 -I/usr/local/include $(M64)



[iyunv@i-0boypofz   magent5]# make      
gcc   -lrt -Wall -g -O2 -I/usr/local/include    -o magent magent.o ketama.o -levent
ketama.o:   In function `create_ketama':
/root/magent5/ketama.c:399:   undefined reference to `floorf'
collect2:   ld returned 1 exit status
make:   *** [magent] Error 1

解决办法:
vi   Makefile

LIBS =   -levent –lm




三 启动

  • 启动memcached


/opt/memcached/bin/memcached   -d -u root -c 10000 -m 8192 192.168.100.22 -p 11211


  • 启动magent


/opt/memcached/bin/magent   -u root -n 102400 -l 192.168.100.24 -p 12001 -s   192.168.100.22:192.168.100.23:11211 -b 192.168.100.24:11211



四 测试

4.1 模拟一台主的坏掉

设置数据:


运维网声明 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-295497-1-1.html 上篇帖子: memcached主从复制之repcache 下篇帖子: Centos6.5 x64 安装Memcached
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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