memcached+magent实现memcached集群

来源:互联网 发布:大连日语软件测试 编辑:程序博客网 时间:2024/04/29 23:32

一、说明

       Memcache本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源;无法同步数据,容易造成单点故障。(memagent代理实现集群)

       在 Memcached中可以保存的item数据量是没有限制的,只要内存足够 。
  Memcached单进程最大使用内存为2G,要使用更多内存,可以分多个端口开启多个Memcached进程
  最大30天的数据过期时间,设置为永久的也会在这个时间过期,常量REALTIME_MAXDELTA 60*60*24*30控制
  最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制
  单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制, 它是默认的slab大小
  最大同时连接数是200,通过 conn_init()中的freetotal进行控制,最大软连接数是1024,通过settings.maxconns=1024 进行控制
  跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式

       memcached是一种无阻塞的socket通信方式服务,基于libevent库,由于无阻塞通信,对内存读写速度非常之快。
  memcached分服务器端和客户端,可以配置多个服务器端和客户端,应用于分布式的服务非常广泛。
  memcached作为小规模的数据分布式平台是十分有效果的。

       memcached是键值一一对应,key默认最大不能超过128个字 节,value默认大小是1M,也就是一个slabs,如果要存2M的值(连续的),不能用两个slabs,因为两个slabs不是连续的,无法在内存中 存储,故需要修改slabs的大小,多个key和value进行存储时,即使这个slabs没有利用完,那么也不会存放别的数据。


二、集群规划

1. 服务器列表

magent server  192.168.128.100:10000

memcache server 1 (mem-s1)  192.168.128.101:11211

memcache server 2 (mem-s2)  192.168.128.102:11211

memcache server 3 (mem-s3)  192.168.128.103:11211

memcache backup 1 (mem-b1)  192.168.128.104:11211

memcache backup 2(mem-b2)  192.168.128.105:11211

2. 部署图示:

三、集群实施

1. 在mem-s1,mem-s2,mem-s3,mem-b1,mem-b2机器上分别安装memcached

#编译安装libeventwget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gztar zxvf libevent-1.4.9-stable.tar.gzcd libevent-1.4.9-stable/./configure --prefix=/usrmake && make installcd ../
#编译安装Memcached:wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gztar zxvf memcached-1.2.6.tar.gzcd memcached-1.2.6/./configure --with-libevent=/usrmake && make installcd ../

2.启动所有机器的memcached服务

执行以下命令:

memcached -m 1 -u root -d -l 192.168.128.101 -p 11211
memcached -m 1 -u root -d -l 192.168.128.102 -p 11211
memcached -m 1 -u root -d -l 192.168.128.103 -p 11211
memcached -m 1 -u root -d -l 192.168.128.104 -p 11211
memcached -m 1 -u root -d -l 192.168.128.105 -p 11211

然后查看进程是否启动成功 ps -ef | grep memcached

3. 在Magent机器上安装magent服务

#编译安装magent:mkdir magentcd magent/wget http://memagent.googlecode.com/files/magent-0.5.tar.gztar zxvf magent-0.5.tar.gz/sbin/ldconfigsed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefilemakecp magent /usr/bin/magent


4.在Magent机器上启动magent服务

执行命令:

magent -u root -n 51200 -l 192.168.128.100 -p 10000 -s 192.168.128.101:11211 -s 192.168.128.102:11211 -s 192.168.128.103:11211 -b 192.168.128.104:11211 -b 192.168.128.105:11211

启动参数
-u 启动账号
-n 最大连接数
-l magent监听的IP
-p magent监听的端口
-s IP:端口 代表是主服务器的IP:端口
-b IP:端口 代表是备服务器的IP:端口

四、检验集群

1. 集群数据分布式存储检验

2. 集群数据冗余备份检验

3. 集群服务failover检验



0 0
原创粉丝点击