HTTPSQS 輕量級簡單隊列服務(wù)

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

1. HTTPSQS 具有以下特征:
  • 非常簡單,基于 HTTP GET/POST 協(xié)議纹烹。PHP谤逼、Java、Perl、Shell、Python、Ruby等支持HTTP協(xié)議的編程語言均可調(diào)用坐榆。
  • 非常快速冗茸,入隊列席镀、出隊列速度超過10000次/秒。
  • 高并發(fā)夏漱,支持上萬的并發(fā)連接豪诲,C10K不成問題。
  • 支持多隊列挂绰。
  • 單個隊列支持的最大隊列數(shù)量高達10億條屎篱。
  • 低內(nèi)存消耗,海量數(shù)據(jù)存儲葵蒂,存儲幾十GB的數(shù)據(jù)只需不到100MB的物理內(nèi)存緩沖區(qū)交播。
  • 可以在不停止服務(wù)的情況下便捷地修改單個隊列的最大隊列數(shù)量。
  • 可以實時查看隊列狀態(tài)(入隊列位置践付、出隊列位置秦士、未讀隊列數(shù)量、最大隊列數(shù)量)永高。
  • 可以查看指定隊列ID(隊列點)的內(nèi)容隧土,包括未出、已出的隊列內(nèi)容乏梁。
  • 查看隊列內(nèi)容時次洼,支持多字符集編碼关贵。
  • 源代碼不超過800行遇骑,適合二次開發(fā)。
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 使用(創(chuàng)建一個隊列,查看監(jiān)聽端口的情況亥啦,停止服務(wù))
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變量是一個數(shù)組,需要事先使用序列化练链、json_encode等函數(shù)轉(zhuǎn)換成文本) 
       如果入隊列成功翔脱,返回布爾值:true  
       如果入隊列失敗,返回布爾值:false  
    */   
    $result = $httpsqs->put($queue_name, $queue_data);   
   
    /*  
    2. 從一個隊列中取出文本信息 
       返回該隊列的內(nèi)容 
       如果沒有未被取出的隊列媒鼓,則返回文本信息:HTTPSQS_GET_END 
       如果發(fā)生錯誤届吁,返回布爾值:false  
    */   
    $result = $httpsqs->get($queue_name);   
      
    /*  
    3. 從一個隊列中取出文本信息和當前隊列讀取點Pos 
       返回數(shù)組示例:array("pos" => 7, "data" => "text message") 
       如果沒有未被取出的隊列,則返回數(shù)組:array("pos" => 0, "data" => "HTTPSQS_GET_END") 
       如果發(fā)生錯誤绿鸣,返回布爾值:false 
    */   
    $result = $httpsqs->gets($queue_name);  
      
    /*  
    4. 查看隊列狀態(tài)(普通方式) 
    */   
    $result = $httpsqs->status($queue_name);  
      
    /*  
    5. 查看隊列狀態(tài)(JSON方式) 
       返回示例:{"name":"queue_name","maxqueue":5000000,"putpos":130,"putlap":1,"getpos":120,"getlap":1,"unread":10} 
    */   
    $result = $httpsqs->status_json($queue_name);  
       
    /*  
    6. 查看指定隊列位置點的內(nèi)容 
       返回指定隊列位置點的內(nèi)容疚沐。 
    */   
    $result = $httpsqs->view($queue_name, $queue_pos);  
       
    /*  
    7. 重置指定隊列 
       如果重置隊列成功,返回布爾值:true  
       如果重置隊列失敗潮模,返回布爾值:false  
    */   
    $result = $httpsqs->reset($queue_name);  
       
    /*  
    8. 更改指定隊列的最大隊列數(shù)量 
       如果更改成功亮蛔,返回布爾值:true 
       如果更改操作被取消,返回布爾值:false 
    */   
    $result = $httpsqs->maxqueue($queue_name, $num);  
      
    /* 
    9. 修改定時刷新內(nèi)存緩沖區(qū)內(nèi)容到磁盤的間隔時間 
       如果更改成功擎厢,返回布爾值:true 
       如果更改操作被取消究流,返回布爾值:false 
    */  
    $result = $httpsqs->synctime($num);  

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市动遭,隨后出現(xiàn)的幾起案子芬探,更是在濱河造成了極大的恐慌,老刑警劉巖厘惦,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灯节,死亡現(xiàn)場離奇詭異,居然都是意外死亡绵估,警方通過查閱死者的電腦和手機炎疆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來国裳,“玉大人形入,你說我怎么就攤上這事》熳螅” “怎么了亿遂?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渺杉。 經(jīng)常有香客問我蛇数,道長,這世上最難降的妖魔是什么是越? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任耳舅,我火速辦了婚禮,結(jié)果婚禮上倚评,老公的妹妹穿的比我還像新娘浦徊。我一直安慰自己馏予,他們只是感情好,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布盔性。 她就那樣靜靜地躺著霞丧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冕香。 梳的紋絲不亂的頭發(fā)上蛹尝,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天,我揣著相機與錄音悉尾,去河邊找鬼箩言。 笑死,一個胖子當著我的面吹牛焕襟,可吹牛的內(nèi)容都是我干的陨收。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼鸵赖,長吁一口氣:“原來是場噩夢啊……” “哼务漩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起它褪,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤饵骨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茫打,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體居触,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年老赤,在試婚紗的時候發(fā)現(xiàn)自己被綠了轮洋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡抬旺,死狀恐怖弊予,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情开财,我是刑警寧澤汉柒,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站责鳍,受9級特大地震影響碾褂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜历葛,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一正塌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦传货、人聲如沸屎鳍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孵坚,卻和暖如春粮宛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卖宠。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工巍杈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扛伍。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓筷畦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刺洒。 傳聞我的和親對象是個殘疾皇子鳖宾,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容

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