#ucmq install
项目要用到 消息队列服务 于是大家选择了 ucmq

1
2
3
4
5
git clone git://github.com/ucopensource/ucmq.git
cd ucmq/
ls /usr/local/libevent/
./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/ucmq
 make clean && make -j4  && make install

2.3.3. 配置说明
[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)
2.3.4. 启动参数说明
cd bin
./ucmq -h
—————————————————————————
HTTP Simple Message Queue Service – ucmq v2.0.1 (May 21 2013 11:19:54)
-c config file path
-d run as a daemon
-v, –version print version and exit
-h, –help print this help and exit
Note1: Use command “killall ucmq” and “kill `cat /tmp/ucmq.pid`” to stop ucmq.
Note2: Please don’t use the command “pkill -9 ucmq” and “kill -9 PID of ucmq” !
—————————————————————————-
2.4. 启动服务

1
2
cd bin
./ucmq -c ../conf/ucmq.ini -d

2.5. 关闭服务
要使ucmq正常退出,除了kill进程号之外,还可以在使用以下命令:
$ curl “http://:/exec?cmd=kill”
3. 协议接口
3.1. 协议说明
协议中所有参数均大小写敏感。服务端返回的内容中以“UCMQ_HTTP”开头的返回内容被称为“返回标识”,该标识描述了HTTP请求的服务返回状态(返回标识尾部有隐藏的“\r\n”)。如果队列还未创建,可通过执行某些操作(put/maxqueue/delay)创建新的队列。
PS:如果在linux终端(如bash)中使用curl操作下述命令,请务必注意在url前后加上括号,以避免“&”字符被转义。
3.2. 业务接口
3.2.1. 入队列(put)
把消息写入队列有两种方式:HTTP GET和HTTP POST,如果希望传递大于2k字节或者非文本数据,建议使用HTTP POST方式。
入队列HTTP GET方式,格式如下:
http://:/?name=&opt=put&data=&ver=2
使用curl方式执行POST方法,如:
$ curl -d “” “http://:/?name=&opt=put&ver=2″
http://ucweb.github.io/ucmq_guide/