本文参考传智播客巴巴运动网视频
本项目是一个在线商品交易平台,平台的主要目的是让企业在平台上发布商品及资讯,用户可以在此平台上购买商品并参与商品的评论。围绕这一目的,系统需要实现商品管理,商品订购,多部门订单处理,商品促销,内容管理等功能。
一、平台技术架构
使用EJB是因为当时3G已经出来,如果以后3G普及了,很多用户可能会通过手机去购物,这时候商城可定要提供两个终端,一种针对电脑,一种针对手机。
采用EJB的话可以把业务层的功能做成EJB部署到一台机器上面,再分别开发PC机的客户端和手机的客户端来远程调用EJB的业务层。
如果使用SSH架构的话,需要维护多份代码。
二、服务器架构
系统有多类服务器,分别为:数据库服务器、JBOSS应用服务器(运行EJB程序)、Tomcat服务器(EJB客户端)、Apache的http服务器(专门用来解析静态文件,减轻Tomcat压力)。关于Apache的http服务器与Tomcat的集成,请在网上搜一下。
随着访问量的增大,需要分别对这三类服务器进行配置集群。在集群环境下,需要加入负载均衡器(可以用硬件来做,也可以用软件来做,最好是用硬件来做。采用软件来做的一般是没钱的公司。)将用户的请求交给集群环境中的某一台机器来处理。
集群下文件的处理方式:1、通过软件方法,开一个socket,每台机器都传送一下,这种方式不大保险。2、硬件方法,磁盘阵列。效率很高,有些硬盘可以作为服务硬盘,有些可以作为备份硬盘。可以把数据根据raid方案放在不同的扇区里面,读取的时候,读取光头会同时读取。访问硬盘的速度可以成倍提高。
多台服务器间Session同步:如果集群环境下服务器不多(一般不超过5台,最好不超过3台。因为让每个Session都分布在各个服务器上会占用很大性能)可以通过Tomcat来配置集群的Session同步。如果服务器超过5台,最好单独搞一个Session服务器。
像这种集群方案,IBM这类公司已经提供了一套一系列的硬件方案,不过一套方案要卖个上百万。有四台WEB服务器,最少能同时支撑三万多人在线。一天的访问量就有三十来万。像当当网,一天也就十八万。
另一种方案是:COOKIE+DB来实现Session的功能,他会把数据存放到数据库,给用户写入个COOKIE,COOKIE存入随机生成唯一ID,标识用户身份,卓越网和当当网用的就是这种方案。
三、用到的几个性能优化的技术
OSCatch:缓存
Velocity:页面静态化
SSI:包含页面