日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Java多用户商城系统B2B2C源码

發布時間:2023/12/10 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java多用户商城系统B2B2C源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近公司要搞商城,讓我多方咨詢,最后看了很多,要不就是代碼、表字段注釋不全,要不就是bug多,要么就是文檔缺少,最后決定自己開發一套商城。

下面是開發的一些心得體會,權且記錄下來,給自己做個記錄把。

?

之前一直都是在從事電商相關和互聯網金融開發,處理過億級數據量,所以被目前這家公司看重。

由于Java是開源的,最近幾年Hadoop等開源產品越來越成熟,而且是基于Java的,所以最終選擇Java最后后臺開發語言,現在前端是自己的前端工程師寫的JS,后期準備改成前端是PHP,中間是Go語言,后臺服務器是Java,因為PHP寫前端很厲害,不過這個也是后期了。

?

?

控制層:這幾年springMVC發展的非常火,而且開發效率比較高,struts系列已經完全沒落了,所以現階段選擇SrpingMVC。

?

視圖層:網上已經有非常多的測試過JSP、freemarkder、velocity等,結果性能:velocity>freemarker>jsp,開發速度:velocity>freemarker>jsp

?

?

數據庫設計:

? ? 1、關鍵的一個是絕對不能有外鍵強關聯我看到類似用hibernate產品的一些公司,全部都是強關聯,那你以后想刪除一些數據,那真是噩夢的,這個還不用說,查詢性能方面影響也是巨大的。

? ?2、分庫分表,這個必須要支持的,做互聯網數據量是非常的巨大的,如果開始就不能支持分庫分表,那么后期會至少花上千萬去做這事,最好一個例子就是當當網,當年很多事單庫的,到現在也沒有實現分庫分表,它們只能使用一些分區表架構,分區表本身就存在很大問題,比如擴展性、數據量過億都是問題!!!!

?

數據庫選擇:

最好還是myslq,

? ?1、輕量,

? ?2、開源(阿里的alisql就是MySQL改個名字)

? ?3、功能能滿足電商需求

?

搜索:選擇lucene較好,原因是他封裝的較好。

?

權限:對于電商來說不應該設計的過于復雜,我認為主要就兩張表就夠了,一個是角色Role表,一個是資源Resources表,然后用戶和角色通過中間表關聯下就OK了,角色里面有資源,很簡單的邏輯。

SpringSecurity和Apache Shiro都是基于RBAC的,但是兩者的R是不一樣的,Security是Role,Shiro是Resource,所以Security不能細粒度的控制權限,這里就不推薦大家使用了,建議有些公司使用這個做權限的換成Shiro或者自定義一套,也是非常簡單的。其實互聯網項目并不需要太多的權限校驗,因為每個項目模塊都是獨立的,這個就減去一塊權限校驗,剩下來才是真正的角色權限邏輯。

?

?

緩存:目前使用Redis,我看到有的公司使用的是memcache,這個10年前,就這屌樣,功能非常的簡陋不說,主要一個問題是會有死緩存,就是緩存怎么也清空不了,這個你想想就知道多悲劇了,商家修改了價格,怎么也改不了,最后只能關閉機器重啟。還有的公司使用的還是hibernate提供的ehcache,這個大家自行了解即可,關鍵是他做集群有問題,搞電商不可能是單機的,剛上線至少是2臺服務器。

?

?

?

靜態化:一般模版語言都可以實現靜態化,可以實現全站60%都是靜態頁面,數據從集群Redis緩存中讀取。

?

服務化:目前使用dubbo,雖然阿里開源的產品代碼質量被人詬病,但是阿里的東西經受住高并發、大流量的考驗,即時老外的東西再好,也沒有這樣的場景去考驗,雖然權衡后選擇dubbo。

?

?

圖片服務器:這個也是非常重要的環節,目前我們測試系統都有15個G的圖片了!!!!線上估計會是以T計算的,肯定是需要獨立的圖片服務器的。

?

集群、負載、分布式:前面的分庫分表、服務化、圖片服務器都是為集群、負載、分布式做準備的,集群需要基于CDN做動態切換,服務器用Nginx做負載,業務層用dubbo做分布式服務。

?

下面整理下整個架構吧:

? ? 展示層/控制層:springMVC,在spring中做讀寫分離

??? 持久層:本團隊開發的mybatis增強版本(程序員幾乎不需要寫SQL、配置等)

? ??數據庫:MySQL/Oracle,支持主從復制、讀寫分離、多機備份、支持分庫分表

?

??? 緩存機制:redis,CDN圖片緩存,也是支持熱備份、高并發

?

??? 靜態化機制:velocity/freemarker等模版語言

? ? 圖片服務器:購買專用服務器,用nginx做負載

? ??

?

??? 安全框架 Apache Shiro?
??? 搜索引擎: Lucene?
? ??

?

? ? 服務器:Linux

? ? 中間件:tomcat、nginx,還有其他N多的支持集群部署的安裝間接軟件,就不一一列舉了

? ? 圖片服務器:通過nginx做的,SFTP方式統一上傳

? ? 集群方案:多機tomcat,seesion統一管理,圖片統一管理。這些需要一套解決方案。

?

? ? 服務器要求:linux/windows,8G內存,空間200G以上

?

? ??

? ?最后對于JAVA領域商城的開發,其實在PHP、.NET語言中,已經有非常多的成熟同類產品了,比如shopnc、ecshop等等等,但是PHP的邏輯都是寫在前臺文件中,這個就跟JAVA中的邏輯都是寫在了JSP中一樣,這樣雖然便于開發,但是安全性、擴展性方面都不行,后期二次開發、維護也不方便。另外.NET語言大家都是知道的,它是不開源的,這個我覺得不敢用的,哪天你遇到致命bug了,沒法從底層排查,這也是為什么銀行、金融、電商很多行業不用這個語言原因了。

?

? 還有外行的人被推薦使用apache ofbiz,這個框架就是個大雜燴,大家不過分神話它。

?

? 另外對于JAVA開發方面,其實如果有好的架構,JAVA程序員只寫邏輯,前端只寫前端,數據庫DBA只關注DBA,這樣的話,開發起來會非常的方便。我們團隊目前也是花了很長時間,也借鑒了很多成熟的框架,研發了一套適合商城開發的一套架構。等到以后有機會可以開源出來給大家。

?

?

總結

以上是生活随笔為你收集整理的Java多用户商城系统B2B2C源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。