远程分布式持久化队列服务MemcacheQ安装笔记

本文介绍了如何搭建memcacheQ持久化队列服务,包括安装Linux开发工具包、安装依赖包BerkeleyDB和libevent,以及安装memcacheQ的具体步骤。并通过测试验证了服务重启后数据不会丢失。

    由于公司的需求,想通过memcached 实现一个基于memcached 的分布式queue。不过基于稳定性和开发时间的关系还是想用现有的开源项目.

    昨天试验了一下,twitter的一个分布式队列服务starling,感觉速度很快,效果不错.但是看看了一下发现没有持久化的相关参数设置(参数还不熟),如果服务或者机器重启以后数据就丢失了.这对一些敏感的数据不是很适用.

[参考:http://ooft.iteye.com/blog/495158

 

    今天试一下memcacheQ,它是memcachedb的一个变种,它基于Berkeley的文件存储的,应该是一种持久化的队列.

 

1.安装linux开发工具包
(1)在可视化窗口下载打开"添加删除程序",找到"开发->开发工具"打钩,更新.插入对应的linux安装盘.
2.安装依赖包

Berkeley DB 4.7 (经试验只能用4.7版本,使用4.8版本时memcacheQ-0.1.1版本编译不通过)
Download from <http://www.oracle.com/database/berkeley-db/db/index.html>
How to install BerkekeyDB:

$tar xvzf db-4.7.25.tar.gz
$cd db-4.7.25/
$cd build_unix/
$../dist/configure
$make
$sudo make install

libevent 1.4.x
Download from <http://monkey.org/~provos/libevent/>

How to install libevent:

$tar xvzf libevent-1.4.x-stable.tar.gz
$cd libevent-1.4.x-stable
$./configure
$make
$sudo make install

系统需要动态加载新的lib,编辑/etc/ld.so.conf,在末尾加入两行:

/usr/local/lib
/usr/local/BerkeleyDB.4.7/lib

保存后,运行 ldconfig -v  命令.

3.安装memcacheQ
$tar xvzf memcacheq-0.1.x.tar.gz
$cd memcacheq-0.1.x
$./configure --enable-threads
$make
$sudo make install

4.启动memcacheQ
memcacheq -d -r -u wuf -p21201 -H /data1/memcacheq -N -v -L 1024 -B 1024 > /data1/mq_error.log 2>&1
-d 后台运行
-p 指定监听端口,这里端口是21201
-H 数据文件存放路径,这里是/data1/memcacheq(必须事先建好目录)
-u 指定已什么用户运行,memcacheq不允许已root运行,所以必须指定一个用户.

注:指定的用户必须有数据文件的读写权限,如这里的/data1/memcacheq和/data1目录.
可以使用"chown 用户名 目录" 的命令给目录授权.

5.关闭memcacheQ
使用ps命令查查memcacheQ的进程:ps -ef|grep wuf,然后直接将进程kill掉.

 

6.测试:

测试代码和Java使用starling分布式消息队列异步处理事务中的一样.

经过测试服务重启后,数据没有丢失.

插入和读取的速度平均 1000条/S 比(starling慢)

 

Java是一种具备卓越性能与广泛平台适应性的高级程序设计语言,最初由Sun Microsystems(现属Oracle公司)的James Gosling及其团队于1995年正式发布。该语言在设计上追求简洁性、稳定性、可移植性以及并发处理能力,同时具备动态执行特性。其核心特征与显著优点可归纳如下: **平台无关性**:遵循“一次编写,随处运行”的理念,Java编写的程序能够在多种操作系统与硬件环境中执行,无需针对不同平台进行修改。这一特性主要依赖于Java虚拟机(JVM)的实现,JVM作为程序与底层系统之间的中间层,负责解释并执行编译后的字节码。 **面向对象范式**:Java全面贯彻面向对象的设计原则,提供对封装、继承、多态等机制的完整支持。这种设计方式有助于构建结构清晰、模块独立的代码,提升软件的可维护性与扩展性。 **并发编程支持**:语言层面集成了多线程处理能力,允许开发者构建能够同时执行多项任务的应用程序。这一特性尤其适用于需要高并发处理的场景,例如服务器端软件、网络服务及大规模分布式系统。 **自动内存管理**:通过内置的垃圾回收机制,Java运行时环境能够自动识别并释放不再使用的对象所占用的内存空间。这不仅降低了开发者在内存管理方面的工作负担,也有效减少了因手动管理内存可能引发的内存泄漏问题。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值