<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[张宴的博客]]></title> 
<link>http://zyan.cc/index.php</link> 
<description><![CDATA[Web系统架构与底层研发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[张宴的博客]]></copyright>
<item>
<link>http://zyan.cc/httpsqs_1_2/</link>
<title><![CDATA[轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>张宴 &lt;net@s135.com&gt;</author>
<category><![CDATA[Cache与存储]]></category>
<pubDate>Thu, 18 Mar 2010 15:11:47 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/</guid> 
<description>
<![CDATA[ 
	　　[文章作者：张宴 本文版本：v1.0 最后修改：2010.03.18 转载请注明原文链接：<a href="http://blog.zyan.cc/httpsqs_1_2/" target="_blank">http://blog.zyan.cc/httpsqs_1_2/</a>]<br/><br/>　　HTTPSQS（HTTP Simple Queue Service）是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务，使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。<br/><br/>　　<span style="font-size: 14px;"><span style="color: #FF0000;">项目网址</span>：<a href="http://code.google.com/p/httpsqs/" target="_blank">http://code.google.com/p/httpsqs/</a></span><br/>　　<span style="font-size: 14px;"><span style="color: #FF0000;">使用文档</span>：<a href="http://blog.zyan.cc/httpsqs/" target="_blank">http://blog.zyan.cc/httpsqs/</a></span><br/>　　<span style="font-size: 14px;">使用环境：</span>Linux（同时支持32位、64位操作系统，推荐使用64位操作系统）<br/>　　<span style="font-size: 14px;">软件作者：</span>张宴<br/><br/>　　队列（Queue）又称先进先出表（First In First Out），即先进入队列的元素，先从队列中取出。加入元素的一头叫“队头”，取出元素的一头叫“队尾”。利用消息队列可以很好地异步处理数据传送和存储，当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据，就可采取消息队列来异步插入。另外，还可以将较慢的处理逻辑、有并发数量限制的处理逻辑，通过消息队列放在后台处理，例如FLV视频转换、发送手机短信、发送电子邮件等。<br/><br/><hr/><br/>　　<strong>HTTPSQS 具有以下特征：</strong><br/><br/>　　● 非常简单，基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。<br/>　　● 非常快速，入队列、出队列速度超过10000次/秒。<br/>　　● 高并发，支持上万的并发连接，<a href="http://www.kegel.com/c10k.html" target="_blank">C10K</a>不成问题。<br/>　　● 支持多队列。<br/>　　● 单个队列支持的最大队列数量高达10亿条。<br/>　　● 低内存消耗，海量数据存储，存储几十GB的数据只需不到100MB的物理内存缓冲区。<br/>　　● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。<br/>　　● 可以实时查看队列状态（入队列位置、出队列位置、未读队列数量、最大队列数量）。<br/>　　● 可以查看指定队列ID（队列点）的内容，包括未出、已出的队列内容。<br/>　　● 查看队列内容时，支持多字符集编码。<br/>　　● 源代码不超过700行，适合二次开发。<br/><br/><hr/><br/>　　<strong>HTTPSQS 1.2 版本增加的功能：</strong><br/><br/>　　<strong>1、服务器端：</strong><br/><br/>　　● PUT入队列、GET出时，1.2版本在Header头增加了一行Pos，输出当前队列“写入点”或“读取点”。假设从队列取出一条消息，这条消息的队列读取点Pos为7，将这条消息插入数据库失败了，那么，就可以在失败Pos日志文件中记录这个队列点。过段时间后，只要该Pos点的数据未被覆盖，通过“<a href="http://127.0.0.1:1218/?charset=utf-8&name=your_queue_name&opt=view&pos=7" target="_blank">http://127.0.0.1:1218/?charset=utf-8&name=your_queue_name&opt=view&pos=7</a>”则可以再次取出该条消息，做失败原因分析或进一步处理。<br/><br/>　　● PUT入队列时，如果“队列写入点”追上“队列读取点”，会返回“HTTPSQS_PUT_END”，提示队列已满，而不是像1.1版本那样直接覆盖未读数据。<br/><br/>　　<strong>2、客户端：</strong><br/><br/>　　● 增加了Perl版本的客户端。感谢网友<a href="http://code.google.com/u/tonny0830/" target="_blank">tonny0830</a>为HTTPSQS开发了Perl客户端。<br/><br/>　　● PHP客户端Class增加了函数$httpsqs->gets($host, $port, $charset, $name)、$httpsqs->pgets($host, $port, $charset, $name)，详细使用说明请见：<a href="http://blog.zyan.cc/httpsqs/" target="_blank">http://blog.zyan.cc/httpsqs/</a><br/><br/><hr/><br/>　　<strong>HTTPSQS 1.1 版本如何升级到 HTTPSQS 1.2 版本：</strong><br/><br/>　　●服务器端版本完全兼容：编译安装 HTTPSQS 1.2，替换 HTTPSQS 1.1，然后“kill httpsqs的进程ID”，按原来的启动参数启动 HTTPSQS 即可，数据完全兼容。<br/><br/>　　●客户端版本完全兼容：HTTPSQS 1.1 版本的PHP客户端，仍可以直接操作 HTTPSQS 1.2。两个版本的PHP客户端函数使用方式、参数相同，1.2 版本的PHP客户端与 1.1 版本相比，增加了gets()和pgets()函数，用于从一个队列中取出文本信息和当前队列读取点Pos。<br/><br/><hr/><br/>　　<strong>HTTPSQS 1.2 的生产环境典型应用案例架构：</strong><br/><br/>　　<a href="http://zyan.cc/attachment/201003/httpsqs_error_handling.png" target="_blank"><img src="http://zyan.cc/attachment/201003/httpsqs_error_handling.png" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><hr/><br/>　　<span style="font-size: 14px;">HTTPSQS 1.2 版本的详细使用说明，请访问：<a href="http://blog.zyan.cc/httpsqs/" target="_blank">http://blog.zyan.cc/httpsqs/</a></span><br/><br/><br/>Tags - <a href="http://zyan.cc/tags/httpsqs/" rel="tag">httpsqs</a> , <a href="http://zyan.cc/tags/http/" rel="tag">http</a> , <a href="http://zyan.cc/tags/queue/" rel="tag">queue</a> , <a href="http://zyan.cc/tags/queues/" rel="tag">queues</a> , <a href="http://zyan.cc/tags/sqs/" rel="tag">sqs</a> , <a href="http://zyan.cc/tags/memcacheq/" rel="tag">memcacheq</a> , <a href="http://zyan.cc/tags/memcachedb/" rel="tag">memcachedb</a> , <a href="http://zyan.cc/tags/activemq/" rel="tag">activemq</a> , <a href="http://zyan.cc/tags/starling/" rel="tag">starling</a> , <a href="http://zyan.cc/tags/amazonsqs/" rel="tag">amazonsqs</a> , <a href="http://zyan.cc/tags/tokyocabinet/" rel="tag">tokyocabinet</a> , <a href="http://zyan.cc/tags/simple/" rel="tag">simple</a> , <a href="http://zyan.cc/tags/service/" rel="tag">service</a> , <a href="http://zyan.cc/tags/%25E9%2598%259F%25E5%2588%2597/" rel="tag">队列</a> , <a href="http://zyan.cc/tags/%25E7%25AE%2580%25E5%258D%2595%25E9%2598%259F%25E5%2588%2597/" rel="tag">简单队列</a> , <a href="http://zyan.cc/tags/%25E6%25B6%2588%25E6%2581%25AF%25E9%2598%259F%25E5%2588%2597/" rel="tag">消息队列</a>
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5296</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>oop &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 18 Mar 2010 15:28:42 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5296</guid> 
<description>
<![CDATA[ 
	sf
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5298</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>ritto &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 00:06:25 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5298</guid> 
<description>
<![CDATA[ 
	好文章，顶
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5299</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>键盘人生 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 00:43:19 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5299</guid> 
<description>
<![CDATA[ 
	有空的时候来研究下
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5300</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>showsky &lt;cnjxxf@yeah.net&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 01:21:45 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5300</guid> 
<description>
<![CDATA[ 
	不错！！
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5303</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>spring &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 01:54:10 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5303</guid> 
<description>
<![CDATA[ 
	请教你画图用的是什么软件?&nbsp;&nbsp;谢谢!
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5310</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>arthur_kang &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 06:26:11 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5310</guid> 
<description>
<![CDATA[ 
	感谢分享 正需要这种现成的应用&nbsp;&nbsp;TT确实作为基础结构可以扩展蛮多的应用
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5312</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>arthur_kang &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 08:25:50 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5312</guid> 
<description>
<![CDATA[ 
	最好再能指定pos的范围进行批量读出；pos可选按时间倒序，即pos=1始终为最新的
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5319</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>怪物宝 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 19 Mar 2010 17:43:59 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5319</guid> 
<description>
<![CDATA[ 
	太好了，网站快完工了，正在试这个
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5331</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>dabanba &lt;Dinnes.lee@yahoo.com.cn&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 22 Mar 2010 04:03:28 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5331</guid> 
<description>
<![CDATA[ 
	学习实验中～
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5409</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>gavin2u &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 26 Mar 2010 23:53:55 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5409</guid> 
<description>
<![CDATA[ 
	好文啊<br/><br/>请问文中的架构图是什么软件画的？谢谢
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5502</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>瀦。尛兎 &lt;866134@163.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 04 Apr 2010 09:46:59 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5502</guid> 
<description>
<![CDATA[ 
	学习了,技术含量太高了,不是很明白
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5515</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>peterhan &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 06 Apr 2010 06:14:00 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5515</guid> 
<description>
<![CDATA[ 
	架构图是用什么软件画的啊？
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5529</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>xyqshow &lt;xyqfans@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 07 Apr 2010 15:29:16 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5529</guid> 
<description>
<![CDATA[ 
	看了一下源码，发现每次入队列和出队列的时候都是先获取队列的写入点和队列的读取点，我就想当在获取写入或读取点时如果有并发同时获取到了，有没有可能导致入队列失败？ 呵呵，不知我这么想对不对。。
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5533</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>dodgepudding &lt;dodgepudding@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 08 Apr 2010 05:35:55 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5533</guid> 
<description>
<![CDATA[ 
	看了一下源码，为什么自己写urldecode函数而不用libevent内建的evhttp_decode_uri，是内建的效率比较低吗？
]]>
</description>
</item><item>
<link>http://zyan.cc/httpsqs_1_2/#blogcomment5640</link>
<title><![CDATA[[评论] 轻量级开源简单队列服务 HTTPSQS 1.2 版本发布[原创]]]></title> 
<author>dekar &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 16 Apr 2010 08:11:35 +0000</pubDate> 
<guid>http://zyan.cc/httpsqs_1_2/#blogcomment5640</guid> 
<description>
<![CDATA[ 
	请问 具体 能做什么呢
]]>
</description>
</item>
</channel>
</rss>