PHP应用   

大型网络项目整体架构方案讨论擂台

时间:2009-12-08 18:08:00

项目背景

进入擂台:

网站的性能决定有很多方面.一个项目更多时候有特殊性,需要针对现实情况实际分析.就拿一个实例来说吧

客户案例:

案例背景:
   A客户是的网站内容主要有:
1.信息门户系统
2.视频发布系统->视频搜索引擎中心
3.用户SNS网络
4.用户单点登陆SSO中心
5.项目管理bug,客户跟踪系统,Web Calls系统
6.社区系统:社区有IM,信件等常用系统
7.单独评论系统,用于发布系统等调用
8.广告、热点信息竞价系统,要与集团所有系统挂钩
9.企业里有相关的web calls系统,系统相关资料与企业里的C/S系统架构CRM/ERP系统有数据同步传输要求......

10.其它根据业务发展,随时增加的功能系统
以上系统要求用户体验程序响应度不得超得2秒,用户注册数有近1亿人左右,访问量日PV近2亿PV,每天独立IP 300-400万IP左右,peak time最大峰值50000
以上活跃用户数差不多500万(二个星期至少有访问一次网站用户)




服务器设备数量

三台F5或是LVS
20 台大型机
500台左右06年中高级服务器配制
300台左右08中高级服务器配制

还有一个资源,就是在全球各地有近1000~5000台低端Linux的分布式计算服务器

操作系统主要采用Linux,部份老的C/S架构应用软件采用windows 2003+sql布局
PHP 5.2.6
Apache /Lighttp/Nginx 或是自己定制的web 服务器
MySQL NDB+MySQL M/S
MogileFS 图片分布式存储
Memcached  对象分布存储
Solr 全文搜索引擎
.....


带宽可供选择分布(参考):




其它服务器分布在二级,三级节点布署Squid或是Varnish CDN网络.


项目负载均衡架构原则


软件:LVS,Linux Virtual Server 或是F5设备Varnish

  • 高可伸缩性:Hight Scalability

  • 高可用性:Hight Availability

  • 可管理性:Manageability

  • 高效与低廉性:


负载均衡处理方面主要涉及的技术块:

1.负载调度器:Load Balancer:
根据GeoDNS与IPVS把用户请求带到离用户最近的服务器节点

2.连接池器:Server Pool :
根据用户的请求,把用户带到请求资源服务器上

3.共享储存器:Share Storage:

用户请求的资源据库、附件、图片资源


二.应用层架构

集团框架整体核心架构 php+mysql

框架PHP目录:

Framework  //集团主开发框架


Portal    //集团门户模型框架

更新中....

三.后端数据库处理模块(C,PERL,SHELL)

更新中....

四.数据库架构

1.Hash分表算法
2.MySQL Master /Slave 主从架构
3.MySQL  NDB 集群
4.各主要业务层数据表设计

更新中 ....

http://bbs.phpchina.com/viewthread.php?tid=25864&highlight=%BC%DC%B9%B9

 

来源:PHPChina论坛

Notice: Constant RUNTIME already defined in /srv/html/srccn/news/config.php on line 15 Notice: Constant ROOTDIR already defined in /srv/html/srccn/news/config.php on line 16 Notice: Constant SITEDIR already defined in /srv/html/srccn/news/config.php on line 17 Notice: Constant DATAURL already defined in /srv/html/srccn/news/config.php on line 20 Notice: Constant VERSION already defined in /srv/html/srccn/news/system/kernel.php on line 17 Notice: Constant COREDIR already defined in /srv/html/srccn/news/system/kernel.php on line 18 Fatal error: require(): Cannot redeclare class mysql in /srv/html/srccn/news/system/kernel.php on line 22