SquirrelMQ 一個快速的消息隊列。
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程序來處理。下面我們會介紹。
#> ./squirrel –c squirrel.conf
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!