Httpsqs隊列基本操作


一,安裝

ulimit -SHn 65535

wget http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz
tar zxvf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable/
./configure --prefix=/usr/local/libevent-2.0.12-stable/
make
make install
cd ../

wget http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz
tar zxvf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47/
./configure --prefix=/usr/local/tokyocabinet-1.4.47/
#注:在32位Linux操作系統上編譯Tokyo cabinet,請使用./configure --enable-off64代替./configure,可以使數據庫文件突破2GB的限制。
#./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/
#在編譯 tokyocabinet 時會報 configure: error: bzlib.h is required 的錯誤。
#解決方法是:   yum install bzip2-devel
make
make install
cd ../

wget http://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz
tar zxvf httpsqs-1.7.tar.gz
cd httpsqs-1.7/
make
make install
cd ../

二、常用命令

 httpsqs -h
-l <ip_addr> 監聽的IP地址,默認值為 0.0.0.0
-p <num> 監聽的TCP端口(默認值:1218)
-x <path> 數據庫目錄,目錄不存在會自動創建(例如:/opt/httpsqs/data)
-t <second> HTTP請求的超時時間(默認值:3)
-s <second> 同步內存緩沖區內容到磁盤的間隔秒數(默認值:5)
-c <num> 內存中緩存的最大非葉子節點數(默認值:1024)
-m <size> 數據庫內存緩存大小,單位:MB(默認值:100)
-i <file> 保存進程PID到文件中(默認值:/tmp/httpsqs.pid)
-a <auth> 訪問HTTPSQS的驗證密碼(例如:mypass123)
-d 以守護進程運行
-h 顯示這個幫助

三、創建隊列

為了訪問安全 所以使用密碼進行驗證

#mkdir /data
# httpsqs -d -p 1218 -x /data/zabbix -a zabbix

請使用命令“killall httpsqs”、“pkill httpsqs”和“kill `cat /tmp/httpsqs.pid`”來停止httpsqs。

   注意:請不要使用命令“pkill -9 httpsqs”和“kill -9 httpsqs的進程ID”來結束httpsqs,否則,內存中尚未保存到磁盤的數據將會丟失。

[root@fms_server ~]# netstat -tnlp | grep 1218
tcp        0      0 0.0.0.0:1218                0.0.0.0:*                   LISTEN      11423/zabbix -a zab 

四、入隊列

GET協議

#curl "http://115.182.209.189:1218/?name=zabbix&opt=put&data=zabbix監控&auth=zabbix"
#返回結果,如果是ok 證明入隊列成功
HTTPSQS_PUT_OK

POST協議

# curl -d "zabbix監控" "http://115.182.209.189:1218/?name=zabbix&opt=put&auth=zabbix"
#返回結果,如果是ok 證明入隊列成功
HTTPSQS_PUT_OK


如果入隊列失敗,返回:
HTTPSQS_PUT_ERROR


如果隊列已滿,返回:
HTTPSQS_PUT_END

五、出隊列(從隊列中取出)

GET方式取出UTF-8格式

# curl "http://115.182.209.189:1218/?charset=utf-8&name=zabbix&opt=get&auth=zabbix"
#取出內容如下
zabbix監控


GET方式取出GB2312格式

curl "http://115.182.209.189:1218/?charset=gb2312&name=zabbix&opt=get&auth=zabbix"
#取出內容如下
zabbix監控


如果隊列里沒有內容 則返回

# curl "http://115.182.209.189:1218/?charset=utf-8&name=zabbix&opt=get&auth=zabbix"
#返回如下
HTTPSQS_GET_END

六、查看隊列狀態

# curl "http://115.182.209.189:1218/?name=zabbix&opt=status&auth=zabbix"
HTTP Simple Queue Service v1.7
------------------------------
Queue Name: zabbix
Maximum number of queues: 1000000
Put position of queue (1st lap): 2
Get position of queue (1st lap): 2
Number of unread queue: 

json格式
# curl "http://115.182.209.189:1218/?name=zabbix&opt=status_json&auth=zabbix"
{"name":"zabbix","maxqueue":1000000,"putpos":2,"putlap":1,"getpos":2,"getlap":1,"unread":0}

更多內容:http://blog.zyan.cc/httpsqs/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM