大规模网站架构实战之体系结构(一)
其实大规模网站并没有什么神奇之处,主要看你的思维和视野(在考虑成本的情况下),主要体现个人认为在于拆和分,就是把一个复杂的问题尽可能的拆分成几个部分,现在MS和开源已经为我们做了很多工作,我们大多时候仅是在关注如何整合现有的资源,下面是我为XXX企业所做的体系结构设计。由于时间关系写的比较乱,具体参考图来理解。
XXX企业项目分析:
一、特征分析
1、用户特征:
游客(互联网) 1000万以上
企业用户 (需要登录认证) 10万左右
个人用户(需要登录认证) 1000万左右
2、数据特征:
门户网站新闻数据 (数据量不大)
业务数据 (单项业务指标最大值在5400万/月)
数据来源于内部网络与互联网物理隔离
由于历史原因数据由不同系统生成,格式多样化
3、网络特征:
内部网络与外部网络通过网闸进行单工通信(只能从内到外)
4、安全特征:
数据涉密敏感
5、使用特征:
部分数据实时性要求较高
二、解决方案
1、安全性(IDS、DDOS防互、病毒扫描软件、防火墙、漏洞扫描器、系统及应用软件补丁等)
2、可靠性(硬件NLB、磁盘阵列、UPS、IPCP)
3、性能
多台高性能服务器,采用SQUID作为WEB加速器、MEMORYCACHE做为数据缓存容器、独立文件服务器存储图片、附件等
采用GZIP压缩、CSS Sprits、图片压缩、局部页面静态化、DIV+CSS标准加快Brower渲染速度
4、应用支撑
当前采用.net 3.5 +Windows 2003 +Oracle 10G +IIS6.0
后续将升级.net 3.5 +Windows 2008 +Oracle 10G +IIS7.0(借助IIS7.0的一些新特性)
5、开发支撑
采用ASP.NET MVC 做为前端表现层、WCF做为通信解决方案、enitity framework+ELB作为数据持久层、quartz做为调度轮询、log4net做为日志处理、
castle IOC做为容器、postSharp做AOP、jquery做脚本框架、Log Parse和awstat做日志分析、自定义异常处理组件整合log4net、MS ESB 做数据交换软总线
三、架构图