本項目是一個在線商品交易平台,平台的主要目的是讓企業在平台上發布商品及資訊,用戶可以在此平台上購買商品並參與商品的評論。圍繞這一目的,系統需要實現商品管理,商品訂購,多部門訂單處理,商品促銷,內容管理等功能。
一、平台技術架構
使用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:包含頁面