SquirrelMQ 一个快速的消息队列。

fmms 9年前

SquirrelMQ特性:

1. SquirrelMQ使用Slab内存分配算法来降低内存碎片,使用epoll来解决高并发问题。效率比redis要高,使用简单。

2. 另外SquirrelMQ支持持久化,在down机的情况下也不用担心数据丢失。

3. SquirrelMQ支持lua脚本,你可以制定自己的处理队列程序,只要在cron/main.lua中编写代码即可。

一,SquirrelMQ使用

下面,我们介绍使用SquirrelMQ消息队列来完成上面所说的应用吧。

1) 安装Lua。

2) 首先下载编译SquirrelMQ:

#> wget http://squirrel-message-queue.googlecode.com/files/squirrel-with-lua-v1.2.zip

#> tar –zxvf squirrel-with-lua-v1.2.zip

#> cd squirrel-with-lua-v1.2

#> make

3) 修改SquirrelMQ配置(squirrel.conf文件):

# 侦听端口  listingPort 6061    # 最大可以使用内存数(单位:字节)  memoryLimitUsed 524288000    # 多长时间进行存储数据到硬盘(防止down机时数据丢失,单位为秒)  secondsToSaveDisk 30    # 多少次数据变化才进行存储数据到硬盘(防止写数据过于频繁)  chagesToSaveDisk 30    # 客户端连接多长时间不操作自动关闭(单位为秒)  clientExpiredTime 60    # 多长时间运行一次cron(单位为毫秒)  cronLoops 5000    # 是否需要密码认证  enableAuth 0    # 认证密码(在enableAuth为1时才需要)  authPwd xn2k@*%bse!@    # lua脚本的路径  luaFilePath /var/squirrelmq/main.lua    # 提供给SquirrelMQ调用的函数  luaMainFunction __main__    # 是否使用守护进程模式运行  daemonize 0



我们根据自己的需求来修改配置,特别说明一下的是,当开启Lua处理线程时,我们可以编写Lua脚本来处理队列(在cron/main.lua)。这样就可以让服务器本身来处理消息队列的数据,而不用另外写一个cron程序来处理。下面我们会介绍。

4) 运行SquirrelMQ:

#> ./squirrel –c squirrel.conf

项目主页:http://www.open-open.com/lib/view/home/1336802655464