• 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/

  • 相关阅读:
    codeforces 587B
    codeforces 552E
    算法竞赛模板 字典树
    算法竞赛模板 二叉树
    算法竞赛模板 图形面积计算
    TZOJ 1545 Hurdles of 110m(动态规划)
    算法竞赛模板 判断线段相交
    算法竞赛模板 折线分割平面
    TZOJ 3005 Triangle(判断点是否在三角形内+卡精度)
    算法竞赛模板 KMP
  • 原文地址:https://www.cnblogs.com/liu-yao/p/6107325.html
Copyright © 2020-2023  润新知