最近公司要搞商城,讓我多方咨詢,最後看了很多,要不就是代碼注釋不全,要不就是bug多,要麼就是文檔缺少,最後決定自己開發一套商城。
下面是開發的一些心得體會,權且記錄下來,給自己做個記錄把。
網址:www.redpigmall.net,本人QQ:4407509,有問題可以聯系本人
之前一直都是在從事電商相關和互聯網金融開發,處理過億級數據量,所以被目前這家公司看重。
由於JAVA是開源的,最近幾年hadoop等開源產品越來越成熟,而且是基於JAVA的,所以最終選擇JAVA最後後台開發語言,現在前端是自己的前端工程師寫的JS,後期准備改成前端是PHP,中間是GO語言,後台服務器是JAVA,因為PHP寫前端很厲害,不過這個也是後期了。
另外JAVA中struts系列,spring系列,jsp/freemarker/velocity等都非常的不錯,但是目前我們主要是需要快速開發,完成功能,所以目前就是選擇SpringMVC,ORM選擇mybatis的,由於網上評價velocity較好,而且主要是方便開發,所以先選擇它了。
另外對於搜索,選擇lucene較好,原因也是方便開發,封裝的較好,權限框架目前使用springSecurity,由於目前團隊中有熟悉security的,後期我傾向於shiro。
下面整理下整個架構吧:
展示層/控制層:springMVC,在spring中做讀寫分離
持久層:mybatis
數據庫:mysql,支持主從復制,多機備份
緩存機制:redis/memcache,CDN圖片緩存,也是支持熱備份、高並發的
靜態化機制:velocity
安全框架 spring security
搜索引擎: Lucene
中文分詞:IKAnalyzer
服務器:linux
中間件:tomcat、nginx,還有其他N多的支持集群部署的安裝間接軟件,就不一一列舉了
圖片服務器:通過nginx做的,SFTP方式統一上傳
集群方案:多機tomcat,seesion統一管理,圖片統一管理。這些需要一套解決方案。
服務器要求:linux/windows,4G內存,空間20G以上
最後對於JAVA領域商城的開發,其實在PHP、.NET語言中,已經有非常多的成熟同類產品了,比如shopnc、ecshop等等等,但是PHP的邏輯都是寫在前台文件中,這個就跟JAVA中的邏輯都是寫在了JSP中一樣,這樣雖然便於開發,但是後期二次開發、維護都不方便。另外.NET語言大家都是知道的,它是不開源的,這個我覺得不敢用的,哪天你遇到致命bug了,沒法從底層排查,這也是為什麼銀行、金融、電商很多行業不用這個語言原因了。
另外對於JAVA開發方面,其實如果有好的架構,JAVA程序員只寫邏輯,前端只寫前端,數據庫DBA只關注DBA,這樣的話,開發起來會非常的方便。我們團隊目前也是花了很長時間,也借鑒了很多成熟的框架,研發了一套適合商城開發的一套架構。等到以後有機會可以開源出來給大家。
網址:www.redpigmall.net,本人QQ:4407509,有問題可以聯系本人