HTTPSQS 輕量級簡單隊列服務

基于HTTP協議的輕量級開源簡單隊列服務:HTTPSQS(引用地址:http://zyan.cc/httpsqs/

1. HTTPSQS 具有以下特征:
  • 非常簡單,基于 HTTP GET/POST 協議。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP協議的編程語言均可調用。
  • 非常快速,入隊列、出隊列速度超過10000次/秒。
  • 高并發,支持上萬的并發連接,C10K不成問題。
  • 支持多隊列。
  • 單個隊列支持的最大隊列數量高達10億條。
  • 低內存消耗,海量數據存儲,存儲幾十GB的數據只需不到100MB的物理內存緩沖區。
  • 可以在不停止服務的情況下便捷地修改單個隊列的最大隊列數量。
  • 可以實時查看隊列狀態(入隊列位置、出隊列位置、未讀隊列數量、最大隊列數量)。
  • 可以查看指定隊列ID(隊列點)的內容,包括未出、已出的隊列內容。
  • 查看隊列內容時,支持多字符集編碼。
  • 源代碼不超過800行,適合二次開發。
2.1 HTTPSQS 編譯安裝(軟件包下載地址 https://code.google.com/p/httpsqs/downloads/list)
cd /var/www/com.bigood

sudo mkdir httpsqs

sudo chown -R www-data:www-data httpsqs/

cd httpsqs/

sudo wget https://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz

sudo wget https://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz

sudo wget https://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz

sudo wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz 

2.2 安裝 libevent-2.0.12-stable
sudo tar zxvf libevent-2.0.12-stable.tar.gz 

cd libevent-2.0.12-stable/

sudo ./configure --prefix=/usr/local/libevent-2.0.12-stable/
 
sudo make 

sudo make install 

2.3 安裝 tokyocabinet-1.4.47 (此步驟必須在安裝tokyotyrant 之前。)
sudo tar zxvf tokyocabinet-1.4.47.tar.gz

cd tokyocabinet-1.4.47/

sudo ./configure --prefix=/usr/local/tokyocabinet-1.4.47/

tips: error1.  configure: error: zlib.h is required

sudo apt-get install zlib1g-dev

tips: error2. configure: error: bzlib.h is required

sudo aptitude install libbz2-dev 

sudo make 

sudo make install 

2.4 安裝 tokyotyrant-1.1.41
sudo tar zxvf tokyotyrant-1.1.41.tar.gz 

cd tokyotyrant-1.1.41/ 

sudo ./configure --prefix=/usr/local/tokyotyrant-1.1.41/ --with-tc=/usr/local/tokyocabinet-1.4.47/ --enable-lua 

tips: configure: error: lua.h is required

sudo tar zxvf lua-5.3.0.tar.gz 

cd lua-5.3.0/ 

sudo make linux

tips: lua.c:80:31: fatal error: readline/readline.h: No such file or directory

sudo apt-get install libreadline6 libreadline6-dev




sudo wget http://www.lua.org/ftp/lua-5.3.0.tar.gz

sudo make

sudo make install 
2.5 安裝 httpsqs 1.7 (httpsqs -h 查看是否安裝成功)
sudo tar zxvf httpsqs-1.7.tar.gz

cd httpsqs-1.7/

sudo make 

sudo make install 

2.6 安裝 php 擴展。
sudo tar zxvf php_httpsqs_client_0.2.1.tar.gz 

sudo mkdir php_httpsqs_client

sudo mv php_httpsqs_client_0.2.1.tar.gz php_httpsqs_client

cd php_httpsqs_client/

sudo tar zxvf php_httpsqs_client_0.2.1.tar.gz 

sudo apt-get install php5-dev

sudo ./configure --enable-httpsqs --with-php-config=/usr/bin/php-config5

sudo make 

sudo make install

cd /etc/php5/mods-available/

sudo vi httpsqs.ini

extension=httpsqs.so;

 cd /etc/php5/conf.d/
 
 sudo ln -s ../mods-available/httpsqs.ini 30-httpsqs.ini
 
 sudo service php5-fpm restart 

2.7 使用(創建一個隊列,查看監聽端口的情況,停止服務)
httpsqs -l 127.0.0.1 -d -p 1218 -x /var/www/com.bigood/httpsqs-data -a ceca846c3dbca3fc

sudo netstat   -anp  | grep 1218

sudo killall httpsqs
2.8 php 客戶端說明文檔 (httpsqs_client.php 文件下載地址:https://code.google.com/p/httpsqs/source/browse/trunk/client/php/httpsqs_client.php)
<?php  
    include_once("httpsqs_client.php");   
    $httpsqs = new httpsqs($httpsqs_host, $httpsqs_port, $httpsqs_auth, $httpsqs_charset);   
   
    /*  
    1. 將文本信息放入一個隊列(注意:如果要放入隊列的PHP變量是一個數組,需要事先使用序列化、json_encode等函數轉換成文本) 
       如果入隊列成功,返回布爾值:true  
       如果入隊列失敗,返回布爾值:false  
    */   
    $result = $httpsqs->put($queue_name, $queue_data);   
   
    /*  
    2. 從一個隊列中取出文本信息 
       返回該隊列的內容 
       如果沒有未被取出的隊列,則返回文本信息:HTTPSQS_GET_END 
       如果發生錯誤,返回布爾值:false  
    */   
    $result = $httpsqs->get($queue_name);   
      
    /*  
    3. 從一個隊列中取出文本信息和當前隊列讀取點Pos 
       返回數組示例:array("pos" => 7, "data" => "text message") 
       如果沒有未被取出的隊列,則返回數組:array("pos" => 0, "data" => "HTTPSQS_GET_END") 
       如果發生錯誤,返回布爾值:false 
    */   
    $result = $httpsqs->gets($queue_name);  
      
    /*  
    4. 查看隊列狀態(普通方式) 
    */   
    $result = $httpsqs->status($queue_name);  
      
    /*  
    5. 查看隊列狀態(JSON方式) 
       返回示例:{"name":"queue_name","maxqueue":5000000,"putpos":130,"putlap":1,"getpos":120,"getlap":1,"unread":10} 
    */   
    $result = $httpsqs->status_json($queue_name);  
       
    /*  
    6. 查看指定隊列位置點的內容 
       返回指定隊列位置點的內容。 
    */   
    $result = $httpsqs->view($queue_name, $queue_pos);  
       
    /*  
    7. 重置指定隊列 
       如果重置隊列成功,返回布爾值:true  
       如果重置隊列失敗,返回布爾值:false  
    */   
    $result = $httpsqs->reset($queue_name);  
       
    /*  
    8. 更改指定隊列的最大隊列數量 
       如果更改成功,返回布爾值:true 
       如果更改操作被取消,返回布爾值:false 
    */   
    $result = $httpsqs->maxqueue($queue_name, $num);  
      
    /* 
    9. 修改定時刷新內存緩沖區內容到磁盤的間隔時間 
       如果更改成功,返回布爾值:true 
       如果更改操作被取消,返回布爾值:false 
    */  
    $result = $httpsqs->synctime($num);  

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,779評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,601評論 25 707
  • 1.半日閑 中午吃完飯,拿pad和電腦給孩子們分別放《動物奧運會》和《超能陸戰隊》,他們擠在廚房旁的自習室看“電視...
    牛牛的Annie閱讀 216評論 0 0
  • 最近常常被這部電影刷屏了,哪里都可以看到它影子,每一個人似乎都在懷念著自己的時代 。 昨晚朋友在影院還沒看完電影的...
    芝士榴蓮南瓜閱讀 300評論 0 0
  • 我寫下三行情詩 一行給自己取暖 剩兩行說我愛你
    珈迦閱讀 502評論 15 23