<?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/234/</link>
<title><![CDATA[一例千万级pv高性能高并发网站架构[原创]]]></title> 
<author>刘天斯 &lt;liutiansi@gmail.com&gt;</author>
<category><![CDATA[Architecture]]></category>
<pubDate>Sun, 18 Dec 2011 04:25:10 +0000</pubDate> 
<guid>https://blog.liuts.com/post/234/</guid> 
<description>
<![CDATA[ 
	<span style="text-align: left; widows: 2; text-transform: none; background-color: #fafbfc; text-indent: 0px; font-family: song, Verdana; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; font-size-adjust: none; font-stretch: normal; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; widows: 2; text-transform: none; background-color: #fafbfc; text-indent: 0px; font-family: song, Verdana; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; font-size-adjust: none; font-stretch: normal; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; widows: 2; text-transform: none; background-color: #fafbfc; text-indent: 0px; font-family: song, Verdana; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; font-size-adjust: none; font-stretch: normal; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;受CU管理员的邀请参考&ldquo;<a href="http://bbs.chinaunix.net/thread-3626937-1-1.html" target="_blank" title="千万级pv高性能高并发网站架构与设计交流探讨帖">千万级pv高性能高并发网站架构与设计交流探讨帖</a>&rdquo;主题的交流，发表了一案例与大家分享。</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个支撑千万级PV的网站是非常考验一个架构是否成熟、健壮(本文不涉及软件架构的层面，有兴趣也可以讨论)。现抛出一个系统层面的架构，不保证是最优的方案，但也许适合你。理由是再优秀的架构都不具备通用性，需要根据每种应用特点针对性来设计。希望起到抛砖引玉的作用，大家多多参与，发表意见。</span><br /><a href="http://life.chinaunix.net/bbsfile/month_1112/1112160026f44ccae50af9bd58.png" target="_blank" title="点击放大"></a><img style="width: 1149px; height: 799px" class="insertimage" src="http://liuts-blog.b0.upaiyun.com/201112/1324277022_85926f4d.png" border="0" width="1235" height="833" /><br /><div align="center"><strong>(点击放大)</strong></div><br />架构说明：<br />1）架构中直接引入软件名称的模块，是个人推荐使用的，如Haproxy、Hadoop等；<br />2）关于全局负载均衡，看成本投入情况，可以使用商业的产品，如F5-GTM，开源方案便是自搭智能DNS；<br />3）本地负载均衡方案，可以考虑F5-LTM或成熟的开源解决方案LVS；<br />4）代理层为什么推荐大家使用Haproxy？Haproxy是一个非常优秀的反向代理软件，十分高效、稳定。国内top 10的互联网公司都有在使用；<br />5）缓存层可以使用Squid或Varnish，个人更倾向Varnish。配置灵活、运行稳定，提供非常便利的管理接口。为啥在缓存层前面加一层代理？优点非常多，列举如下：<br /><ul class="litype_1" style="padding-bottom: 0px; line-height: normal; margin: 0px 0px 0px 14px; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px"><li style="padding-bottom: 0px; line-height: normal; list-style-type: decimal; margin: 0px 0px 0px 2em; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px">根据应用配置URI路由规则，集中热点来提高后端缓存的命中率；</li><li style="padding-bottom: 0px; line-height: normal; list-style-type: decimal; margin: 0px 0px 0px 2em; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px">轻松划分网站频道、版块，更好对应用进步组织、规划；</li><li style="padding-bottom: 0px; line-height: normal; list-style-type: decimal; margin: 0px 0px 0px 2em; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px">对URI进行一般性安全过滤，抵御注入攻击；</li><li style="padding-bottom: 0px; line-height: normal; list-style-type: decimal; margin: 0px 0px 0px 2em; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px">弹性调配硬件资源，应对突发事件产生大流量；</li><li style="padding-bottom: 0px; line-height: normal; list-style-type: decimal; margin: 0px 0px 0px 2em; padding-left: 0px; padding-right: 0px; word-wrap: break-word; padding-top: 0px">可回收宝贵的公网IP资源；</li></ul><br />6）应用层开源技术方案非常多且成熟，在此不详细描述；<br />7）数据库层主流开源解决方案Mysql是首选，主从复制（一主对多从）是目前比较靠谱的模式；<br />8）关于Nosql，应用场景不多说，可参考&ldquo;<a style="line-height: normal; word-wrap: break-word; color: #000000; text-decoration: none" href="post/194/" target="_blank">给部门做的Mongodb技术交流PPT</a>&rdquo;文章，redis、memcached等作为热点数据存储、数据库缓存都非常理想；<br />9）内网DNS扮演的角色非常重要，一定要消灭code中出现的内网IP地址，很大程度减少因IP变更、服务器故障而修改源码的情况，同时也便于维护；<br />10）内网LB适用在内部WEB接口、多台数据库Slave、多台Nosql Slave、公共服务等应用的负载均衡，可以使用LVS、Haproxy来实现，可用性要求不高的应用可行直接使用Localhost DNS轮询；<br />11）hadoop适合海量数据的存储与处理，如做网站日志分析、用户数据挖掘等；<br />12）管理集群，平台的核心，运维的阵地；<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上粗略介绍了架构的几个组成部分，如大家有对哪块有疑问或感兴趣都可以展开来讨论，也可以通过weibo与我交流：<a style="line-height: normal; word-wrap: break-word; color: #000000; text-decoration: none" href="http://t.qq.com/yorkoliu" target="_blank" title="http://t.qq.com/yorkoliu">http://t.qq.com/yorkoliu</a></span><br/>Tags - <a href="https://blog.liuts.com/tags/%25E6%259E%25B6%25E6%259E%2584/" rel="tag">架构</a> , <a href="https://blog.liuts.com/tags/%25E6%259E%25B6%25E6%259E%2584%25E8%25AE%25BE%25E8%25AE%25A1/" rel="tag">架构设计</a>
]]>
</description>
</item>
</channel>
</rss>