SquirrelMQ 一個快速的消息隊列。

fmms 12年前發布 | 17K 次閱讀 消息 消息系統

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.baiduhome.net/lib/view/home/1336802655464

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!