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

[经验分享] docker 构建magent的memcached 集群

[复制链接]

尚未签到

发表于 2018-12-24 12:18:10 | 显示全部楼层 |阅读模式
  基于swarm 构建magent的memcached 集群:
  Magent 是一款开源的 Memcached 代理服务器软件,使用它可以搭建高可用性的集群应用的 Memcached 服务 ,备份 Memcached 数据,尽管 Memcached 服务挂掉,前端也能获取到数据,客户端先连到 Magent 代理服务器 ,然后Magent 代理服务器 在可以连接多台 Memcached 服务器,然后可以进行数据的保存和备份数据。这样数据就不会丢失,保存了数据完整性。
  1、构建magent镜像:
  安装Magent
wget http://memagent.googlecode.com/files/magent-0.5.tar.gz
tar -zxvf magent-0.5.tar.gz
/sbin/ldconfig
sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
  在ketama.h或magent.c开头添加
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
把调整好后的文件夹直接add到镜像中。如下为Dockerfile 内容:
  Dockerfile:
########################################
FROM centos:7
ADD magent /tmp/magent
RUN yum install -y gcc make libevent-devel.x86_64  && yum clean all && cd /tmp/magent/ &&  /sbin/ldconfig && make  && cp magent /usr/bin/
  CMD  magent -u root -l 0.0.0.0 -p 12000  -s 1.1.1.1:11211 -b 1.1.1.2:11211
#这里的-s仅供参考。
########################################
  构建镜像:
docker build . -t 10.211.121.26/memcache/magent:v1
提交到私有仓库:
docker push 10.211.121.26/memcache/magent:v1
  memcached使用公版镜像。
  使用stack部署:
  magent.yml 文件:
#####
version: '3.2'
services:
magent:
image: '10.211.121.26/memcache/magent:v1'
ports:

  •   '12001:12000'
    #command:  magent -u root  -D -v  -l 0.0.0.0 -p 12000 -s memcached1:11211 -b memcached2:11211
    #使用service name做为入口一直无法正常连接,没找到原因,在magent容器内部能正常访问memcached1:11211。
    command:  'magent -u root  -D -v  -l 0.0.0.0 -p 12000 -s 10.211.121.75:12002 -b 10.211.121.75:12003'
      memcached1:
    image: memcached
    ports:
  •   '12002:11211'
      memcached2:
    image: memcached
    ports:
  • '12003:11211'
  #####
  部署:
docker stack  deploy  -c magent.yml  magent
  Creating network magent_magent
Creating service magent_magent
Creating service magent_memcached1
Creating service magent_memcached2
  测试验证:
telnet 10.211.121.75 12001
  Trying 10.211.121.75...
Connected to 10.211.121.75.
Escape character is '^]'.
set key 0 0 3
qqq
STORED
get key
VALUE key 0 3
qqq
END
quit
Connection closed by foreign host.
telnet 10.211.121.75 12002
  Trying 10.211.121.75...
Connected to 10.211.121.75.
Escape character is '^]'.
get key
VALUE key 0 3
qqq
END
quit
Connection closed by foreign host.
telnet 10.211.121.75 12003
  Trying 10.211.121.75...
Connected to 10.211.121.75.
Escape character is '^]'.
get key
VALUE key 0 3
qqq
END
quit
Connection closed by foreign host.
  测试情况基本满足需求,遗留问题是stack中:
#command:  .... -s memcached1:11211 -b memcached2:11211   service name无法作为入口使用。
  欢迎交流沟通:
QQ: 249016681




运维网声明 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-655284-1-1.html 上篇帖子: Memcached高可用群集配置方案 下篇帖子: Memcached命令解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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