队列系统说明
1,关于MCQ
和memcahce类似,将数据写入BerkleyDB落地,MEMCACHEQ的SET的操作,相当于在BDB中做了一次INSERT的操作;MEMCACHEQ的GET的操作,从BDB中获取一条数据,BDB同时会将这条记录进行DELETE操作。在机器重启等操作的时候,数据不会丢失,兼容memcache的协议。
参数说明:
/usr/local/bin/memcacheq -drNvR -uroot -A8192 -B4096 -L1024 -m64 -c3000-T16 -H/data0/mcq/dbq/7014 -p7014
-H 指定数据存放的路径
-p 指定启动的监听端口
-B 指定该进程一次请求分配的块大小(如果4096,必须加上-A8192启动)
-c 最大并发的用户数
-L 指定LOG缓冲区的大小
-u 指定以什么用户的身份启动
-m 指定BDB的数据在内存中缓存的大小
-d 后台运行
-r 获得最大的CORE文件的限制
-N 打开DB_TXN_NOSYNC获得最大的性能提升;
BDB将不在事件触发(commit)日志或同步刷新日志。这意味着事件支持ACI(atomicity,consistency,isolation)特性,而非D(durability),也就是说数据库的完整性(integrity)将被维护,但当程序或系统出错,一些最常触发的事件可能在恢复操作中被取消(undone)。风险事件的数目由多少日志更新与日志内存匹配,操作系统将脏文件刷新到磁盘,以及日志被检查的频率决定。该标志可以在程序运行任何时期用set_flags导入环境配置,只对指定的环境句柄起作用。
-v 打印详细的ERROR和warning日志消息
-R 自动删除比较久的日志
2,MCQ的写入和读取
查看当前queue写入和读取情况
写入
读取
2,现有队列系统建构
MCQ池
原来的MCQ池分类: 核心池(6000),应用池(7000),推送池(8000)等
现在按照业务单元重新归类:base,openapi,admin,main,comm,app
MCQ系统
core.mq.t.sina.com.cn---> 10.75.1.252/ 10.73.14.235 --> 10.75.1.21/22/23/24........
MCQ资源的使用
在程序中读取SINASRV_CONFIG的环境变量
环境变量中对应着域名和端口
解析到对应的VIP
VIP静态轮询到某一台真实的server
真实server配置LO回环地址,走LVS单臂模式