HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。 项目网 址:http://code.google.com/p/httpsqs/ 使用文 档:http://blog.s135.com/httpsqs/ 使用环境:Linux(同时支持32位、64位操作系统,推荐使用64 位操作系统) 软件作者:张宴 队列 (Queue)又称先进先出表(First In First Out),即先进入队列的元素,先从队列中取出。加入元素的一头叫“队头”,取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储, 当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过 消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。 HTTPSQS 具有以下特征: ● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。 ● 非常快速,入队列、出队列速度超过10000次/秒。 ● 高并发,支持上万的并发连接,C10K不成问题。 ● 支持多队列。 ● 单个队列支持的最大队列数量高达10亿条。 ● 低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。 ● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。 ● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。 ● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。 ● 查看队列内容时,支持多字符集编码。 ● 源代码不超过800行,适合二次开发。
HTTPSQS 1.3 版本增加的功能: 1、服务器端: ● 增加了重要功能:定时将内存缓冲区内容写到磁盘的功能。 HTTPSQS 1.2 及以前的版本,只有当内存缓冲区满的时候,才将内存中的内容写到磁盘,如果这期间服务器宕机,将导致一部分数据丢失。从 1.3 版本开始,支持了定时(默认5秒钟/次)将内存缓冲区内容同步到磁盘的功能,可以在启动 HTTPSQS 时使用“-s <second>”参数设置同步间隔。在 HTTPSQS 运行过程中,可以通过浏览器访问“http://host:port/?name=your_queue_name&opt=synctime&num=间 隔秒数”来实时修改同步间隔,无需重启。 ● 增加了辅助功能:以JSON格式查看队列状态。 原有的查询队列状态功能“http://host:port/?name=your_queue_name&opt=status”, 适合通过浏览器访问,人工查看,不便于程序处理。新增加的功能“http://host:port/?name=your_queue_name&opt=status_json”, 以JSON格式输出队列状态信息,便于客户端程序进行处理,输出的格式示例如下:
● 增加了以下四项启动参数:
2、 客户端: ● PHP客户端Class增加了Keep-alive长连接断线自动检测、自动重连功能,PHP客服端守护进程从HTTPSQS读取数据时,不用考虑连接异 常断开处理。非常适合PHP客服端作为守护进程,从队列GET读取数据,或者批量往队列中写入数据的应用。 ● PHP客户端Class增加了函数$httpsqs->status_json($host, $port, $charset, $name);、$httpsqs->synctime($host, $port, $charset, $name, $num);、$httpsqs->pstatus_json($host, $port, $charset, $name);、$httpsqs->psynctime($host, $port, $charset, $name, $num);,详细使用说明请见:http://blog.s135.com/httpsqs/
评论删除后,数据将无法恢复
开源简单队列服务 HTTPSQS 1.3 发布
HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。
项目网 址:http://code.google.com/p/httpsqs/
使用文 档:http://blog.s135.com/httpsqs/
使用环境:Linux(同时支持32位、64位操作系统,推荐使用64 位操作系统)
软件作者:张宴
队列 (Queue)又称先进先出表(First In First Out),即先进入队列的元素,先从队列中取出。加入元素的一头叫“队头”,取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储, 当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过 消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。
HTTPSQS 具有以下特征:
● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。
● 非常快速,入队列、出队列速度超过10000次/秒。
● 高并发,支持上万的并发连接,C10K不成问题。
● 支持多队列。
● 单个队列支持的最大队列数量高达10亿条。
● 低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。
● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。
● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。
● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。
● 查看队列内容时,支持多字符集编码。
● 源代码不超过800行,适合二次开发。
HTTPSQS 1.3 版本增加的功能:
1、服务器端:
● 增加了重要功能:定时将内存缓冲区内容写到磁盘的功能。
HTTPSQS 1.2 及以前的版本,只有当内存缓冲区满的时候,才将内存中的内容写到磁盘,如果这期间服务器宕机,将导致一部分数据丢失。从 1.3 版本开始,支持了定时(默认5秒钟/次)将内存缓冲区内容同步到磁盘的功能,可以在启动 HTTPSQS 时使用“-s <second>”参数设置同步间隔。在 HTTPSQS 运行过程中,可以通过浏览器访问“http://host:port/?name=your_queue_name&opt=synctime&num=间 隔秒数”来实时修改同步间隔,无需重启。
● 增加了辅助功能:以JSON格式查看队列状态。
原有的查询队列状态功能“http://host:port/?name=your_queue_name&opt=status”, 适合通过浏览器访问,人工查看,不便于程序处理。新增加的功能“http://host:port/?name=your_queue_name&opt=status_json”, 以JSON格式输出队列状态信息,便于客户端程序进行处理,输出的格式示例如下:
● 增加了以下四项启动参数:
-c <num> 内存中缓存的最大非叶子节点数(默认值:10000)
-m <size> 数据库内存缓存大小,单位:MB(默认值:100)
-i <file> 保存进程PID到文件中(默认值:/tmp/httpsqs.pid)
2、 客户端:
● PHP客户端Class增加了Keep-alive长连接断线自动检测、自动重连功能,PHP客服端守护进程从HTTPSQS读取数据时,不用考虑连接异 常断开处理。非常适合PHP客服端作为守护进程,从队列GET读取数据,或者批量往队列中写入数据的应用。
● PHP客户端Class增加了函数$httpsqs->status_json($host, $port, $charset, $name);、$httpsqs->synctime($host, $port, $charset, $name, $num);、$httpsqs->pstatus_json($host, $port, $charset, $name);、$httpsqs->psynctime($host, $port, $charset, $name, $num);,详细使用说明请见:http://blog.s135.com/httpsqs/