<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[运维进行时]]></title> 
<link>https://blog.liuts.com/index.php</link> 
<description><![CDATA[互联网运维与架构]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[运维进行时]]></copyright>
<item>
<link>https://blog.liuts.com/post/217/</link>
<title><![CDATA[构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>刘天斯 &lt;liutiansi@gmail.com&gt;</author>
<category><![CDATA[Python]]></category>
<pubDate>Fri, 15 Oct 2010 15:13:10 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在web2.0网站系统架构中，缓存无处不在。如一个大的CDN平台，一个普通的页面级缓存等。合理的利用缓存可以提高用户下载速度、降低源服务器性能负载。如何高效去维护一个缓存集群？除了提高命中率便是缓存的推送管理。现与大家分享构建一个高性能的缓存推送平台思路及实现。<br/><br/><strong>一、平台架构图</strong><br/><a href="https://blog.liuts.com/attachment.php?fid=224" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=224" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 说明：平台使用Django+mysql开发，支持POS/GET两种模式，POST方式用于管理员的手工推送，GET方式则用于接口模式。平台将接收到的URL进行校验、分类后统一向所属缓存服务器组进行telnet pureg请求。遍历完所有主机后返回结果串。<br/><br/><strong>二、平台截图</strong><br/><span style="color: #DC143C;">1、管理UI</span><br/><a href="http://blog.liuts.com/attachment/201010/1287152458_1760351a.png" target="_blank"><img src="http://blog.liuts.com/attachment/201010/1287152458_1760351a.png" border="1" width="710"></a><br/><br/><span style="color: #DC143C;">2、接口说明</span><br/><a href="http://blog.liuts.com/attachment/201010/1287157746_26000b73.png" target="_blank"><img src="http://blog.liuts.com/attachment/201010/1287157746_26000b73.png" border="1" width="710"></a><br/><br/><span style="color: #DC143C;">3、接口调用</span><br/><a href="http://blog.liuts.com/attachment/201010/1287153878_23937e08.jpg" target="_blank"><img src="http://blog.liuts.com/attachment/201010/1287153878_23937e08.jpg" border="1" width="710"></a><br/><br/><br/><strong>三、功能说明</strong><br/> <span style="color: #00008B;">1、普通模式</span><br/>&nbsp;&nbsp;&nbsp;&nbsp; 只限制于文件或目录的推送<br/>&nbsp;&nbsp;例：推送http://www.domain.com/web/index.shtml及http://www.domain.com/js/下的全部文件。<br/><br/>&nbsp;&nbsp;1.1、手工方式<br/>&nbsp;&nbsp;输入框中输入：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&nbsp;&nbsp; http://www.domain.com/web/index.shtml<br/>&nbsp;&nbsp; http://www.domain.com/js/<br/></div></div>后点［提交推送］按钮。<br/><br/>&nbsp;&nbsp;1.2、接口方式<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&nbsp;&nbsp;http://www.domain.com/push/executive/?PushURLid=http://www.domain.com/web/index.shtml,http://www.domain.com/js/&Advancedmode=<br/></div></div><br/> <span style="color: #00008B;">2、高级模式</span><br/>&nbsp;&nbsp;&nbsp;&nbsp; 支持正则表达式的URL规则(适合专业人员使用)<br/>&nbsp;&nbsp;例：推送http://www.domain.com/main/下文件名为index，扩展名任意的文件及http://www.domain.com/images/下所有*.swf,*.gif文件。<br/><br/>&nbsp;&nbsp;2.1、手工方式<br/>&nbsp;&nbsp;输入框中输入：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&nbsp;&nbsp; http://www.domain.com/main/index..*$<br/>&nbsp;&nbsp; http://www.domain.com/images/.*.(swf&#124;gif)<br/></div></div>选中［高级模式］后点［提交推送］按钮。<br/><br/>&nbsp;&nbsp;2.2、接口方式<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>&nbsp;&nbsp;http://www.domain.com/push/executive/?PushURLid=http://www.domain.com/main/index..*$,http://www.domain.com/images/.*.(swf&#124;gif)&Advancedmode=1<br/></div></div><br/> <span style="color: #00008B;">3、注意事项</span><br/>&nbsp;&nbsp; 手工模式中禁止在输入框中出现空行、多个URL连接。<br/><span style="color: #DC143C;">注：squid主机不支持高级模式及目录推送</span><br/><strong>三、性能测试</strong><br/>#ab -c 1000 -n 5000 http://sys.domain.com/push/executive/?PushURLid=http://1.domain.com/1.js,http://2.domain.com/img/&Advancedmode=<br/>3.1、Nginx+Django+fastcgi模式测试数据<br/><a href="https://blog.liuts.com/attachment.php?fid=219" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=219" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>3.2、Nginx+Django+UWSGI模式测试数据<br/><a href="https://blog.liuts.com/attachment.php?fid=226" target="_blank"><img src="https://blog.liuts.com/attachment.php?fid=226" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="711"/></a><br/><br/>结论：对接口进行了压力测试，以5000次1000并发进行请求，fastcgi模式速度很快，但存在很多返回错误，从后台日志来看，都是NGINX 502 Bad Gatewa信息，说明后端fastcgi已经处理超时了，UWSGI模式速度不及fastcgi，但表现得很稳定。最终选择了UWSGI+Nginx组合。<br/><br/><strong>三、平台部署</strong><br/>1、部署环境平台<br/>参考：<a href="http://blog.liuts.com/post/216/" target="_blank">Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器[原创]</a><br/><br/>2、部署代码<br/>#cd /opt/www<br/>#wget http://blog.liuts.com/Purgesys.tar.gz<br/>#tar -zxvf Purgesys.tar.gz<br/><br/>#cd Purgesys<br/>#vi setting.py<br/><strong><span style="color: #DC143C;">红色为修改项</span></strong><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/># Django settings for Purgesys project.<br/><br/>DEBUG = True<br/>TEMPLATE_DEBUG = DEBUG<br/><br/>ADMINS = (<br/>&nbsp;&nbsp;&nbsp;&nbsp; ('Liuts', 'liutiansi@gmail.com'),<br/>)<br/><br/>MANAGERS = ADMINS<br/><br/><span style="color: #DC143C;"><br/>#数据库信息<br/>DATABASES = &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;'default': &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'NAME': 'Purgesys',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Or path to database file if using sqlite3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'USER': 'dbuser',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Not used with sqlite3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'PASSWORD': 'dbpass',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Not used with sqlite3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'HOST': '192.168.100.215',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set to empty string for localhost. Not used with sqlite3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'PORT': '3306',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Set to empty string for default. Not used with sqlite3.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/>#varnish管理端口与varnish启动参数.. -T 127.0.0.1:2603保持一致。<br/>VARNISHADMINPORT=2603<br/>SQUIDADMINPORT=80<br/></span><br/><br/># Local time zone for this installation. Choices can be found here:<br/># http://en.wikipedia.org/wiki/List_of_tz_zones_by_name<br/># although not all choices may be available on all operating systems.<br/># On Unix systems, a value of None will cause Django to use the same<br/># timezone as the operating system.<br/># If running in a Windows environment this must be set to the same as your<br/># system time zone.<br/>TIME_ZONE = 'Asia/Shanghai'<br/><br/># Language code for this installation. All choices can be found here:<br/># http://www.i18nguy.com/unicode/language-identifiers.html<br/>LANGUAGE_CODE = 'zh-cn'<br/><br/>SITE_ID = 1<br/><br/># If you set this to False, Django will make some optimizations so as not<br/># to load the internationalization machinery.<br/>USE_I18N = True<br/><br/># If you set this to False, Django will not format dates, numbers and<br/># calendars according to the current locale<br/>USE_L10N = True<br/><br/># Absolute path to the directory that holds media.<br/># Example: "/home/media/media.lawrence.com/"<br/>MEDIA_ROOT = '<span style="color: #DC143C;">/opt/www/Purgesys/</span>static/'<br/><br/># URL that handles the media served from MEDIA_ROOT. Make sure to use a<br/># trailing slash if there is a path component (optional in other cases).<br/># Examples: "http://media.lawrence.com", "http://example.com/media/"<br/>MEDIA_URL = '/static/'<br/><br/># URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a<br/># trailing slash.<br/># Examples: "http://foo.com/media/", "/media/".<br/>ADMIN_MEDIA_PREFIX = '/static/'<br/><br/># Make this unique, and don't share it with anybody.<br/>SECRET_KEY = 'tj)*mv!pc_)!zsk*cki$u_f9fg9&^)2^64qi#8!c8xjji--sm7'<br/><br/># List of callables that know how to import templates from various sources.<br/>TEMPLATE_LOADERS = (<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.template.loaders.filesystem.Loader',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.template.loaders.app_directories.Loader',<br/>#&nbsp;&nbsp;&nbsp;&nbsp; 'django.template.loaders.eggs.Loader',<br/>)<br/><br/>MIDDLEWARE_CLASSES = (<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.middleware.common.CommonMiddleware',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.sessions.middleware.SessionMiddleware',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.middleware.csrf.CsrfViewMiddleware',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.auth.middleware.AuthenticationMiddleware',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.messages.middleware.MessageMiddleware',<br/>)<br/><br/>ROOT_URLCONF = 'Purgesys.urls'<br/><br/>TEMPLATE_DIRS = (<br/>&nbsp;&nbsp;&nbsp;&nbsp;# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".<br/>&nbsp;&nbsp;&nbsp;&nbsp;# Always use forward slashes, even on Windows.<br/>&nbsp;&nbsp;&nbsp;&nbsp;# Don't forget to use absolute paths, not relative paths.<br/>&nbsp;&nbsp;&nbsp;&nbsp;'<span style="color: #DC143C;">/opt/www/Purgesys/</span>templates'<br/>)<br/><br/>INSTALLED_APPS = (<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.auth',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.contenttypes',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.sessions',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.sites',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'django.contrib.messages',<br/>&nbsp;&nbsp;&nbsp;&nbsp;# Uncomment the next line to enable the admin:<br/>&nbsp;&nbsp;&nbsp;&nbsp;# 'django.contrib.admin',<br/>&nbsp;&nbsp;&nbsp;&nbsp;# Uncomment the next line to enable admin documentation:<br/>&nbsp;&nbsp;&nbsp;&nbsp;# 'django.contrib.admindocs',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'Purgesys.purgeapp',<br/>&nbsp;&nbsp;&nbsp;&nbsp;'Purgesys.publicclass',<br/>)<br/><br/></div></div><br/><br/>3、导入数据库文件<br/>cd Purgesys/sql<br/><textarea name="code" class="c" rows="15" cols="100">
#mysql -u dbuser -pdbpass dbname<Purgesys.sql
</textarea><br/>添加用户数据(注意关联关系)：<br/> purgeapp_resource(缓存主机表)<br/> purgeapp_resourcegroup(应用表)<br/><br/>4、Varnish配置项<br/>配置应用主域名set req.http.host = "web.domain.com"，这样做有两个好处：<br/>&nbsp;&nbsp;①对单应用多域名只缓存一份数据;<br/>&nbsp;&nbsp;②有利于缓存推送。<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>sub vcl_recv &#123;<br/>&nbsp;&nbsp; ...<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.http.host ~ "web.domain.com") &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set req.backend = webserver;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #FF0000;">set req.http.host = "web.domain.com";</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request != "GET" && req.request != "HEAD") &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(pipe);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return(lookup);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/>...<br/>&#125;<br/></div></div><br/><br/>5、Varnish启动参数<br/>-T 0.0.0.0:3500一定要与setting.py中的ADMINPORT=2603保持一致，否则无法进行推送操作。<br/><br/>6、访问测试<br/>http://sys.domain.com/push/<br/><br/>7、缓存推送平台1.0下载<br/><a href="attachment.php?fid=225">点击这里下载文件</a><br/><br/>缓存推送平台1.1下载<br/>(添加squid支持)<br/><a href="attachment.php?fid=236">点击这里下载文件</a><br/><br/><strong>四、后续问题</strong><br/>１、我的服务端口非80怎么办？如URL：http://test.domain.com:8080/static/main.gif。<br/>解决方法：<br/>　　在数据库添加应用主机名称时加上端口便可，即ResourceGroupName(表)插入：<br/>　　“test.domain.com:8080　－　varnish”<br/><br/>如大家有什么疑问或感兴趣的话题可以通过weibo与我交流：<a href="http://t.qq.com/yorkoliu" target="_blank">http://t.qq.com/yorkoliu</a><br/>Tags - <a href="https://blog.liuts.com/tags/python/" rel="tag">python</a> , <a href="https://blog.liuts.com/tags/%25E7%25BC%2593%25E5%25AD%2598/" rel="tag">缓存</a> , <a href="https://blog.liuts.com/tags/%25E6%258E%25A8%25E9%2580%2581/" rel="tag">推送</a> , <a href="https://blog.liuts.com/tags/%25E5%25B9%25B3%25E5%258F%25B0/" rel="tag">平台</a> , <a href="https://blog.liuts.com/tags/varnish/" rel="tag">varnish</a>
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment412</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>wnian &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 16 Oct 2010 02:39:37 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment412</guid> 
<description>
<![CDATA[ 
	支持一下,到时候研究下
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment413</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>liliyum &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 16 Oct 2010 08:05:25 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment413</guid> 
<description>
<![CDATA[ 
	刘老大太强了，期待开源，呵呵。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment423</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>badb0y &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 16 Oct 2010 13:35:11 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment423</guid> 
<description>
<![CDATA[ 
	支持一下，，转载了！
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment436</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>vista2010 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 19 Oct 2010 15:59:43 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment436</guid> 
<description>
<![CDATA[ 
	多谢分享，老刘的好东西真不少啊。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment441</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>鸿雁 &lt;wangchengtai@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 21 Oct 2010 02:24:50 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment441</guid> 
<description>
<![CDATA[ 
	支持squid、nginx缓存推送吗？
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment442</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>muxueqz &lt;zmy@linuxzh.org&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 25 Oct 2010 03:45:12 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment442</guid> 
<description>
<![CDATA[ 
	学习，感谢分享
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment451</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>chuangtse &lt;zhuangzhy@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 02 Nov 2010 05:14:35 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment451</guid> 
<description>
<![CDATA[ 
	支持一下。另外问下绘图工具用的什么呢？
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment462</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>lislike &lt;lislike@gmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 08 Nov 2010 11:48:11 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment462</guid> 
<description>
<![CDATA[ 
	今天安装上了，好强大。谢谢天斯。
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment463</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>梦飞 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 09 Nov 2010 08:21:08 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment463</guid> 
<description>
<![CDATA[ 
	支持 squid的 2.0 版本 开源吗？ 要是开源，啥时候开源啊？
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/217/#blogcomment464</link>
<title><![CDATA[[评论] 构建高性能缓存推送平台(添加squid支持)[原创]]]></title> 
<author>impact wrench &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 09 Nov 2010 08:23:18 +0000</pubDate> 
<guid>https://blog.liuts.com/post/217/#blogcomment464</guid> 
<description>
<![CDATA[ 
	不错，实在是太强了。谢谢博主介绍的这么仔细，让我学习到了。
]]>
</description>
</item>
</channel>
</rss>