中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java B2B2C源碼電子商務平臺 -----客戶端負載均衡策略

發布時間:2020-08-11 01:31:58 來源:ITPUB博客 閱讀:140 作者:bootb2b2c 欄目:編程語言

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

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

 

 

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

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

 

 

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

 

視圖層: 這個我個人認為哪一個都差不多, jsp freemarker 也好,最終都是生成的 html

 

 

數據庫 設計:

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

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

3 、處理秒殺,作為互聯網項目,秒殺那也是必須要能支持才可以的。

 

 

 

數據庫選擇:最好還是 myslq,1、輕量,2、開源(阿里的alisql就是 MySQL 改個名字), 3、功能能滿足電商需求

 

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

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

 

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

 

靜態化:目前使用 前端 靜態化,可以實現全站 60%都是靜態頁面,數據從集群redis緩存中讀取。

 

服務化:目前使用 SpringCloud 雖然 阿里的 dubbo 確實做得非常好,但是目前市場來看 SpringCloud 有取代的趨勢,另外 SpringCloud 提供了更多的服務治理方案。

 

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

 

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

 

下面整理下整個 架構 吧:

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

    持久層:mybatis

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

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

    靜態化機制: 系統頁面做靜態化,提高訪問速度

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

    

   
    搜索引擎: 分布式 ElasticSearch
   

    服務器: 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,這樣的話,開發起來會非常的方便。我們團隊目前也是花了很長時間,也借鑒了很多成熟的框架,研發了一套適合商城開發的一套架構。等到以后有機會可以開源出來給大家。

 

 

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

禄丰县| 兴山县| 洛浦县| 江山市| 安达市| 兴安盟| 永善县| 萨迦县| 上饶市| 图木舒克市| 六盘水市| 浦城县| 治多县| 固阳县| 佛冈县| 高阳县| 长宁区| 高唐县| 枣庄市| 贵港市| 渝中区| 阿合奇县| 甘肃省| 张家川| 庆阳市| 大荔县| 剑阁县| 绩溪县| 同江市| 图木舒克市| 民勤县| 泌阳县| 奉贤区| 璧山县| 平山县| 平阴县| 堆龙德庆县| 康定县| 喀什市| 延津县| 钦州市|