UCMQ 安装部署

系统服务   ucmq  
简介
  • UCMQ是一款支持简单HTTP协议的轻量级消息队列服务,基本特性如下:
    • 支持HTTP协议的GET/POST方法,支持长连接(keep-alive);
    • 请求响应非常快速,入队列、出队列速度超过10000次/秒;
    • 每个UCMQ实例支持多队列,队列通过操作接口自动创建;
    • 单个队列支持的最大消息数量(未取出的)可以不限制,默认限制在1百万以内;
    • 可以在不停止服务的情况下便捷地修改单个队列的属性;
    • 可以实时查看队列属性(入队列数量、出队列数量、未读消息数量、消息积压数量)。
  • 项目的最初原型来自于HTTPSQS,UCMQ的主要修改如下:
    • 数据存储弃用TC,改用日志型文件方式存储。积压数据量不受限于内存,性能更高,大量的数据积压也不会导致性能波动,队列数据可以独立搬迁。
    • 增加了多个运维接口和功能接口。
    • 完全支持标准HTTP协议,同时兼容原有HTTPSQS协议。
安装部署
  • 系统要求
    • libevent版本2.0.10以上stable版本
    • g++
  • Libevent安装
tar zxf libevent-2.0.22-stable.tar.gz  
./configure  --prefix=/usr/local/libs
make && make install  
ldconfig -v  
  • 获取安装包
    git clone git://github.com/ucopensource/ucmq.git
  • 编译安装
    ./configure --with-libevent=/usr/local/libs --prefix=/usr/local/ucmq
    make clean && make && make install
  • 配置说明
[server]
http_listen_addr=127.0.0.1       //监听地址  
http_listen_port=1818            //监听端口  
allow_exec_ip=0                  //允许执行运维指令的ip,0为不限制  
binlog_file_path=../binlog       //binlog目录(暂未实现主从)  
output_log_path=../log           //日志目录  
output_log_level=INFO            //日志记录级别  
keep_alive=300                   //长连接有效时间(单位:秒)  
conf_file=../conf/ucmq.ini       //配置文件路径  
pid_file=/tmp/ucmq_eth0_1818.pid //进程保护文件  
res_store_space=4                //预留磁盘空间(单位:GB)  
[rtag]
sync_interval=10                 //数据文件内存映射持久化操作间隔(写操作次数)  
sync_time_interval=100           //间隔n秒后持久化rtag和DB的信息,会调用fsync。  
[queue]
def_max_queue=1000000            //队列允许积压消息量,设置为0则不限制  
#延时只能设置更大
def_delay=0                      //队列延时时间  
#以下内容自从启动后不允许修改
[db]
data_file_path=../data           //data文件存放路径  
#文件大小不允许超过64,必须是系统页大小的倍数
db_file_max_size=64              //允许的data文件的最大限制(单位:MB)  
启动服务

/usr/local/ucmq/bin/ucmq -c /usr/local/ucmq/conf/ucmq.ini -d

关闭服务(两种方式)
  • kill $(pgrep ucmq)
  • curl "http://<mq_ip>:<mq_port>/exec?cmd=kill