什么是HTTPSQS?

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。



消息队列作用

利用消息队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。



HTTPSQS 特征

HTTPSQS 具有以下特征:
1、非常快速,入队列、出队列速度超过10000次/秒。
高并发,支持上万的并发连接,C10K不成问题。
支持多队列。
2、单个队列支持的最大队列数量高达10亿条。
3、低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。
4、可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。
5、可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。
6、可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。
7、查看队列内容时,支持多字符集编码。
8、源代码不超过700行,整个软件不超过900KB,适合二次开发。



结合PHP的HTTPSQS简单例子
PHP生产者:



include_once("httpsqs_client.php");
$httpsqs = new httpsqs('127.0.0.1');
$name = 'flux';
$val = '放入第一个内容';
$httpsqs->put($name, $val);

PHP消费者:

include_once("httpsqs_client.php");
$httpsqs = new httpsqs('127.0.0.1');
$name = 'flux';
while (1) {
$data = $httpsqs->get($name);
if ($data == false) { // 没有数据
sleep(1);
} else { // 处理业务
print_r($data);
}}

最后推荐一个公众号,一枚IT技术人成长路上关于生活和职场的思考,欢迎书友们前来交流和分享心得

整理和总结:基于PHP的消息队列HTTPSQS_数据