`
qianshangding
  • 浏览: 127884 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Memcached之代理服务magent(8)

 
阅读更多

magent是一款开源的Memcached代理服务器软件,可以实现Memcached之间的主从备份。在主节点挂点的情况下,会自动切换到从节点继续提供服务。本篇主要介绍magent的安装,以及安装过程中碰到的一些问题。


编译安装libevent:

[root@bicloud75 home]#wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
[root@bicloud75 home]# tar zxvf libevent-1.4.9-stable.tar.gz
[root@bicloud75 home]# cd libevent-1.4.9-stable
[root@bicloud75 libevent-1.4.9-stable]# ./configure --prefix=/usr
[root@bicloud75 libevent-1.4.9-stable]# make && make install


安装Memcached:

参考:Memcached之Window和Linux安装(1)


安装magent

下载的magent-0.6.tar.gz放在/home/magent目录。

[root@bicloud75 home]# cd magent/
[root@bicloud75 magent]# tar zxvf magent-0.6.tar.gz
[root@bicloud75 magent]# ll
总用量 100
-rw-rw-r--. 1  500  502 12822 4月  10 2010 ketama.c
-rw-rw-r--. 1  500  502   339 4月  10 2010 ketama.h
-rw-r--r--. 1 root root 17257 9月   1 10:30 magent-0.6.tar.gz
-rw-rw-r--. 1  500  502 54813 4月  15 2010 magent.c
-rw-rw-r--. 1  500  502   501 4月  14 2010 Makefile
[root@bicloud75 magent]# /sbin/ldconfig    //刷新
[root@bicloud75 magent]# sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
[root@bicloud75 magent]# make
gcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a 
安装成功!
[root@bicloud75 magent]# ./magent 
please provide -s "ip:port" argument

memcached agent v0.6 Build-Date: Sep  1 2015 14:53:34
Usage:
  -h this message
  -u uid
  -g gid
  -p port, default is 11211. (0 to disable tcp support)
  -s ip:port, set memcached server ip and port
  -b ip:port, set backup memcached server ip and port
  -l ip, local bind ip address, default is 0.0.0.0
  -n number, set max connections, default is 4096
  -D don't go to background
  -k use ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, set max keep alive connections for one memcached server, default is 20
  -v verbose


参数
描述
-h
帮助信息
-u
用户ID
-g

-p
端口号,默认是11211,不能为0
-s
memcachd服务的IP+端口
-b
备份memcached的IP+端口
-l
本地bind的IP地址,默认是:0.0.0.0
-n
最大的连接数量,默认是:4096
-D
不运行在后台
-k
使用ketama密钥分配算法
-f

-i
设置每个memcached服务保持存活的连接数量,默认是20
-v
启动时前端打印日志

启动命令:

有六个Memcached进程,分别是:

10.0.1.75:12000
10.0.1.75:12001
10.0.1.76:12000
10.0.1.76:12001
10.0.1.77:12000
10.0.1.77:12001


10.0.1.75:12000,10.0.1.76:12000,10.0.1.77:12000作为主Memcached

10.0.1.75:12001,10.0.1.76:12001,10.0.1.77:12001作为备Memcached

启动Magent:

/home/magent/magent -u -k root -n 51200 -p 11222 -s 10.0.1.75:12000 -s 10.0.1.76:12000 -s 10.0.1.77:12000 -b 10.0.1.75:12000 -b 10.0.1.76:12001 -b 10.0.1.77:12001

Magent端口为11222,下面使用telnet查看连接情况:

[root@bicloud75 home]# telnet 10.0.1.75 11222
Trying 10.0.1.75...
Connected to 10.0.1.75.
Escape character is '^]'.
stats
memcached agent v0.6
matrix 1 -> 10.0.1.75:12000, pool size 1
matrix 2 -> 10.0.1.76:12000, pool size 1
matrix 3 -> 10.0.1.77:12000, pool size 1
END

magent安装错误总汇:

错误1:

gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
magent.c: 在函数‘writev_list’中:
magent.c:729: 错误:‘SSIZE_MAX’未声明(在此函数内第一次使用)
magent.c:729: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:729: 错误:所在的函数内也只报告一次。)
make: *** [magent.o] 错误 1

解决办法:

[root@bicloud75 magent]# vi ketama.h
ketama.h文件头部加下列几行:

#ifndef SSIZE_MAX
#define SSIZE_MAX      32767
#endif

错误2:

gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
gcc -Wall -g -O2 -I/usr/local/include -m64 -c -o ketama.o ketama.c
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':
(.text+0x439): undefined reference to `clock_gettime'
/usr/lib64/libevent.a(event.o): In function `event_base_new':
(.text+0x6fa): undefined reference to `clock_gettime'
collect2: ld 返回 1
make: *** [magent] 错误 1
解决办法:

[root@bicloud75 magent]# vi Makefile
CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64)
改成
<pre name="code" class="java">CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)


错误3:

gcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -o magent magent.o ketama.o /usr/lib64/libevent.a /usr/lib64/libm.a 
gcc: /usr/lib64/libm.a:没有那个文件或目录
make: *** [magent] 错误 1
解决办法:
[root@bicloud77 magent]# ln -s /usr/lib64/libm.so /usr/lib64/libm.a


下一篇将讲述如何采用magent做memcachd HA

分享到:
评论

相关推荐

    memcached安装软件 libevent magent memcached

    本篇文章将详细讲解如何安装和配置memcached,以及与之相关的libevent和magent。 首先,我们需要了解libevent库。libevent是一个事件通知库,它允许程序处理多个网络连接,并有效地处理来自不同源的事件。在安装...

    magent memcached缓存代理服务器

    当我们谈论"Magent Memcached缓存代理服务器"时,这意味着我们将在Magento环境中集成和配置Memcached作为缓存解决方案。 首先,让我们详细了解Memcached。Memcached是一种基于内存的键值存储,它通过将经常访问的...

    Memcached 服务器集群安装配置和测试

    3. 安装 magent:magent 是一个 Memcached 代理,用于负载均衡和故障转移。安装 magent 需要编译和安装 magent 的源代码。 ``` mkdir magent cd magent tar zxvf magent-0.5.tar.gz sed -i "s#LIBS = -levent#LIBS ...

    linux下安装jdk与memcached及memcached代理说明

    4. **启动Magent**: 根据你的需求启动多个Memcached实例,然后启动Magent作为代理,连接到这些实例。 **注意**:上述步骤可能因Linux发行版和软件版本的不同而有所变化。请确保从官方或可信的源获取软件,并根据...

    magent-0.5.tar.gz

    magent的主要功能是确保即使在memcached服务器出现故障时,服务也能继续提供,实现容错。同时,它还支持“分布式存储”,意味着它可以将数据分发到多个memcached实例上,以优化性能并扩展存储容量。 **标签解析:**...

    magent-0.5-修正版

    magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/ 安装完后显示版本为0.4,如下: [root@localhost /]# magent please provide -s "ip:port" argument memcached ...

    magent-0.6-修正版

    magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/ 安装完后显示版本为0.6,如下: [root@localhost /]# magent please provide -s "ip:port" argument memcached ...

    session共享tomcat7 memcached 文档

    1. **安装Nginx服务**并配置反向代理服务。 2. **安装Tomcat服务**并编写测试页面。 3. **配置Tomcat连接Memcached**,实现Session共享。 4. **安装Memcached服务**。 5. **安装magent程序**并部署。 6. **安装...

    Memcache原理及实现

    - Magent代理:Magent是一个开源的Memcached代理,可以提高Memcached集群的可用性和性能。 - 客户端库:对于Java开发,常用的客户端库是memcached client for java(也称为spymemcached),它提供方便的API接口,...

    Java开发中的Memcache原理及实现(带书签)

    Magent是一个开源的Memcached代理服务器软件,可以用来建立和管理缓存,能够支持高可用性的集群应用。Memcached客户端程序,推荐使用memcachedclientforjava,这是因为它提供了Java开发者常用的API,方便与Java应用...

    Java开发中的Memcache原理及实现

    - **定义**:一款开源的Memcached代理服务器软件,用于构建高可用性的集群应用。 - **作用**:通过代理的方式提高Memcached的稳定性和性能。 - **获取方式**:访问其项目网站 (http://code.google.com/p/memagent/) ...

    memcache集群安装

    `magent`是一个简单的memcached代理,可以用来实现简单的负载均衡。安装magent(如文件`magent-0.6.tar.gz`所示),然后配置它作为客户端与多个memcache服务器之间的中间层。 ### 8. memcached升级 在文件`...

    非关系数据库对比分析

    通过 Memcached 代理软件 Magent 可以构建内存集群,如一个由 10 台 4GB 内存服务器组成的集群总共可以提供 40GB 的可用内存。 3. **MongoDB**:适合大规模数据存储,依赖操作系统虚拟内存(VM)进行内存管理。为了...

    面试题redis面试题集合.pdf

    4. 分布式:虽然两者都可以通过客户端或者代理支持分布式的实现,但Redis自身从3.0版本开始支持多播方式的集群功能,而Memcached需要依赖其他组件如Magent来实现集群。 5. 使用场景:由于Redis提供了更多的功能和...

Global site tag (gtag.js) - Google Analytics