一,安装

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/

Httpsqs队列基本操作的更多相关文章

  1. Go实现栈与队列基本操作

    @ 目录 一 前言 二 实现栈与队列基本操作 2.1 栈基本操作 2.2 队列基本操作 三 用栈实现队列 3.1 理论 3.2 算法题 3.3 思路 3.4 代码部分 四 用队列实现栈 4.1 理论 ...

  2. STL-queue和循环队列基本操作的实现

    2018-11-13-17:53:44 1.可增长循环队列 队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构.它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入 ...

  3. HTTPSQS 队列

    http://blog.csdn.net/21aspnet/article/details/7467812 http://hi.baidu.com/caoxin_rain/item/5282770cd ...

  4. 栈与队列基本操作 Java实现

    一.顺序栈 //数组实现顺序栈 public class OrderStack { private String[] elem; private int top; OrderStack(int k) ...

  5. 转:基于HTTP协议的轻量级开源简单队列服务:HTTPSQS

    [文章作者:张宴 本文版本:v1.7.1 最后修改:2011.11.04 转载请注明原文链接:http://blog.zyan.cc/httpsqs/] HTTPSQS(HTTP Simple Que ...

  6. 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS[转]

    HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key ...

  7. HTTPSQS(HTTP Simple Queue Service)消息队列

    HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key ...

  8. 队列 - 从零开始实现by C++

    参考链接:数据结构探险-队列篇 数据结构太重要了,不学好是没法进行软件开发的. C++写数据结构基本套路:一个.h文件写该数据结构类的接口:一个.cpp文件写接口的具体实现:一个main.cpp用于测 ...

  9. Python httpsqs封装类

    ''' httpsqs队列封装 @author xp_go@qq.com a = HttpsqsClient('192.168.0.218','1218','httpsqsmmall.com') pr ...

随机推荐

  1. Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  2. 在php中验证复选框

    PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便.但是还是有解决办法的,就是利用javascript做一下预处理.多个同名复选框在javascript中还是以数组的形 ...

  3. bzoj4559: [JLoi2016]成绩比较

    感谢丁爷爷教我做这个题的后半部分. 首先,运用一发容斥原理,求出所有人与B神每门课分数相对关系的不同方案数. 这个似乎大(wo)家(lan)都(de)会(hui)了(yi),我就不说了,详见代码里的f ...

  4. 【poj2065】 SETI

    http://poj.org/problem?id=2065 (题目链接) 题意 题意半天看不懂..给你一个素数P(P<=30000)和一串长为n的字符串str[].字母'*'代表0,字母a-z ...

  5. TypeScript Type Compatibility(类型兼容)

    TypeScript中的类型兼容是基于结构归类的.在普通分类的相比之下,结构归类是一种纯粹用于将其成员的类型进行关联的方法.思考下面的代码: interface Named { name: strin ...

  6. 【Beta版本】冲刺随笔汇总

    [Beta版本]冲刺计划及安排 [Beta版本]冲刺-Day1 [Beta版本]冲刺-Day2 [Beta版本]冲刺-Day3 [Beta版本]冲刺-Day4 [Beta版本]冲刺-Day5 [Bet ...

  7. TAC Alpha版本 冲冲冲!!!

    第1天 第2天 第3天 第4天 第5天 第6天 第7天 第8天 第9天 第10天 测试随笔 冲刺总结

  8. JSVirtualMachine与JSContext

    JSVirtualMachine相当于进程: JSContext相当于线程:

  9. 第二轮冲刺-Runner站立会议09

    今天:将日历界面和主程序结合起来 明天:查看整个项目,调试是否有问题

  10. webpack解惑:require的五种用法 (转)

    我之前在 <前端搭环境之从入门到放弃>这篇文章中吐槽过,webpack中可以写commonjs格式的require同步语法,可以写AMD格式的require回调语法,还有一个require ...