当前位置: 代码迷 >> Web前端 >> 高并发电子商务(WEB)项目草案
  详细解决方案

高并发电子商务(WEB)项目草案

热度:159   发布时间:2012-08-22 09:50:35.0
高并发电子商务(WEB)项目方案
最近在思考,如何开发一个高并发的web应用。主要是个人总结的经验和方法论,欢迎大家扔石头砸我并积极的讨论。

1.性能分析
分析高并发的瓶颈在哪里,根据笔者的经验瓶颈主要出现在CPU和数据库上。其次是网卡和网络的负载。在cpu负载100%的情况下,会拒绝受理请求。数据库的瓶颈在写入的情况下居多。

2.架构
1)作业调度
目前笔者了解的方案是quartz的集群方案,采用数据库作为锁来控制定时任务执行的唯一性,避免集群里定时任务被执行2次。

2)session
在web项目中,做集群比较难的地方就是session复制。所以我们一般情况下禁用session,采用cookie来取代。

3)web服务器优化
一般静态资源和请求的分发,我们通常采用apache和nginx来处理。目前尤其推荐ngnix。他的性能比apache高级个数量级。后端的jsp/servlet容器,一般会改变他的运行模式。比如tomcat有bio,nio,apr三种模式。最理想的情况下,是采用apr模式才增加吞吐量。

4)缓存
单机缓存ecache
分布式缓存memcache

5)数据库
a 分表:表名区分(tab1,tab2,tab3),逻辑分区(根据算法)
b 读写分离
c 不能有外键
d 语句优化,例子如下:
m*n
select * from flight,city where flight.startcityid=city.cityid and city.name='beijing';

m + n
select * from flight where startcityid = (select cityid from city where cityname='beijing');

e 索引
f 数据库系统参数设置
g 表中字段适当冗余

6)操作系统优化
调整linux内核参数,定制操作系统以适应特殊的高并发需求。

7)建立分布式应用或者云体系

3.集群优化
从web,service,数据库,缓存4个角度做各种集群。
1 楼 zsg6221827 2011-08-01  
学习中,借鉴借鉴、   新手还是很多东西需要摸透啊、
2 楼 85977328 2011-08-01  
zsg6221827 写道
学习中,借鉴借鉴、   新手还是很多东西需要摸透啊、

恩,欢迎积极讨论,能给出点建议就更好了。这样互相都可以提高
3 楼 grandboy 2011-08-01  
架构设计要考虑到具体业务特点,所谓的“技巧”有时是良药,有时却成了毒药了。
4 楼 pujia12345 2011-08-01  
想知道有多高?百度这样高?数据有电信这样大?
5 楼 85977328 2011-08-02  
grandboy 写道
架构设计要考虑到具体业务特点,所谓的“技巧”有时是良药,有时却成了毒药了。

对,只是讨论基本的方法论。不涉及具体的业务
6 楼 85977328 2011-08-02  
pujia12345 写道
想知道有多高?百度这样高?数据有电信这样大?

就是如何分析一个高并发WEB应用的思路和步骤。想归纳一下
7 楼 WAMING5 2011-08-24  
引用
在web项目中,做集群比较难的地方就是session复制。所以我们一般情况下禁用session,采用cookie来取代
,如果客户端禁用了cookie怎么处理呢
8 楼 jeffsang 2011-09-24  
非结构化数据的集群/分布式方案补充:
1. 文件系统(user upload):NAS存储/NFS,读写分离,分发(rsync)
2. lucene/compass等索引文件的分布式支持
9 楼 85977328 2011-09-26  
WAMING5 写道
引用
在web项目中,做集群比较难的地方就是session复制。所以我们一般情况下禁用session,采用cookie来取代
,如果客户端禁用了cookie怎么处理呢

我们可以进行URL重写
现在 REST架构,建议我们使用无状态的会话,即:任何一台服务器,都可以相应客户端的请求。