国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

高并發(fā)的電商平臺如何實(shí)現(xiàn)

發(fā)表日期:2022-08-18 15:51:01   作者來源:藍(lán)明基   瀏覽:1560   標(biāo)簽:電商平臺開發(fā)    高并發(fā)網(wǎng)站開發(fā)    
摘要伴隨著社會的不斷發(fā)展,人們的生活水平和消費(fèi)水平也在不斷提高,我國的支外支付平臺的不斷完善,網(wǎng)上購物成為人們?nèi)粘I钪械闹匾獌?nèi)容。天貓、淘寶、拼多多等電子商務(wù)平臺也逐漸融入人們的生活。過去,傳統(tǒng)的電子商務(wù)平臺使用了一種單體系結(jié)構(gòu),目的是將整個業(yè)務(wù)邏輯集中在一個應(yīng)用程序中。但是,隨著業(yè)務(wù)的不斷擴(kuò)展,平臺的流量、功能和要求也在不斷增加,這種單體架構(gòu)模式的應(yīng)用在功能拓展以及維護(hù)的時候都會越來越麻煩,還有抗并發(fā)的能力也滿足不了現(xiàn)在的需求。
本文根據(jù)上述要求和難點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一個基于微服務(wù)的高并發(fā)電子商務(wù)平臺。根據(jù)微服務(wù)體系結(jié)構(gòu)的思想,將整個系統(tǒng)分為六個微服務(wù)。這些微服務(wù)是單獨(dú)開發(fā)和實(shí)施的。采用ngnix、sentinel、redis和rabbitmq等技術(shù)實(shí)現(xiàn)了請求路由、請求流約束、緩沖和異步請求處理,從而提高了系統(tǒng)的可擴(kuò)展性和高并發(fā)性能。本文詳細(xì)介紹了各個微服務(wù)的功能,結(jié)合電子商務(wù)平臺本身的要求,提出了系統(tǒng)的總體功能需求和非功能需求,通過平臺架構(gòu)圖展示了微服務(wù)體系結(jié)構(gòu)的構(gòu)建模式,并通過E-R圖論證了平臺中不同主體之間的關(guān)系。根據(jù)系統(tǒng)大綱的需求分析和設(shè)計(jì)內(nèi)容,采用springmvc、springboot、springcloud、mybatis、Vue、redis和rabbitmq等技術(shù)實(shí)現(xiàn)了基于微服務(wù)的高并發(fā)電子商務(wù)平臺。最后采用黑盒測試方法對系統(tǒng)功能進(jìn)行了測試,保證了系統(tǒng)的高可用性、高性能和高并發(fā)和穩(wěn)定性。
而經(jīng)過早期開發(fā)和測試,基于微服務(wù)體系結(jié)構(gòu)的高并發(fā)電子商務(wù)平臺能夠在不同環(huán)境下可靠運(yùn)行,各種不同的任務(wù)可以通過不同微服務(wù)模塊之間的正常協(xié)作完成。電子商務(wù)平臺可以很好地滿足三種類型的用戶:高并發(fā)和大規(guī)模數(shù)據(jù)環(huán)境下的買家、商家和后臺管理人員。
 
【關(guān)鍵詞】電商平臺;微服務(wù)架構(gòu);高并發(fā)
 
 
1引言
1.1項(xiàng)目背景及意義
伴隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,電子商務(wù)系統(tǒng)日趨成熟和完善。近年來,它在我國的經(jīng)濟(jì)組成中發(fā)揮著重要作用。而正是由于國內(nèi)電子商務(wù)的快速發(fā)展,各類電子商務(wù)平臺已經(jīng)融入人們的生活,網(wǎng)購已經(jīng)成為人們?nèi)粘I钪蟹浅V匾囊徊糠帧?br /> 而由于我國網(wǎng)絡(luò)用戶數(shù)量龐大,電子商務(wù)平臺的發(fā)展將來將面臨高并發(fā)化的問題。而且隨著電子商務(wù)市場的發(fā)展,人們對電子商務(wù)平臺的需求會越來越大,這說明著電子商務(wù)平臺的業(yè)務(wù)邏輯將會變得越來越復(fù)雜,技術(shù)難度也會越來越大。傳統(tǒng)的電子商務(wù)平臺在實(shí)際開發(fā)中采用單一的體系結(jié)構(gòu)構(gòu)建整個電子商務(wù)平臺,用戶需求小、平臺規(guī)模小的時候該方法易于開發(fā)。當(dāng)用戶需求較大時,該方法混淆了整個電子商務(wù)平臺的內(nèi)部邏輯,使得開發(fā)人員難以進(jìn)行擴(kuò)展和維護(hù),大大降低了對高并發(fā)能力的支持。從而構(gòu)建邏輯清晰、易于開發(fā)維護(hù)的電子商務(wù)平臺就顯得的越來越重要。
微服務(wù)體系結(jié)構(gòu)是一個復(fù)雜的結(jié)構(gòu)體系,根據(jù)簡單、靈活、獨(dú)立的功能模塊分為一些獨(dú)立的微服務(wù)。該基于微服務(wù)體系結(jié)構(gòu)的平臺邏輯簡單,易于開發(fā)和部署,擴(kuò)展性高并且維護(hù)性強(qiáng),能夠滿足未來電子商務(wù)平臺的發(fā)展需求。
1.2國內(nèi)外研究現(xiàn)狀
國內(nèi)領(lǐng)先的大型電子商務(wù)企業(yè)有京東、阿里巴巴、拼多多、當(dāng)當(dāng)?shù)?。他們的電子商?wù)平臺也占據(jù)了國內(nèi)市場的大部分,并且他們電子商務(wù)平臺的模式卻十分相似。早期的電商平臺,主要通過靜態(tài)HTML網(wǎng)頁向用戶顯示商品信息,然后用戶在線下跟商家聯(lián)系,完成與商家的交易。后來電子商務(wù)平臺已從原來的靜態(tài)網(wǎng)頁轉(zhuǎn)變?yōu)槟軌蚺c用戶交互的動態(tài)網(wǎng)頁。初期,由于用戶數(shù)量少,需求大,電子商務(wù)平臺邏輯比較簡單,整體規(guī)模小,所以是用單一的體系結(jié)構(gòu)開發(fā)的,一個系統(tǒng)包含全部功能。
而隨著用戶數(shù)量的增加和各種需求的增加,傳統(tǒng)的單一體系結(jié)構(gòu)電子商務(wù)平臺逐漸暴露出一些薄弱環(huán)節(jié),如功能難以拓展、后期維護(hù)困難、并發(fā)能力差等。而隨后,分布式體系結(jié)構(gòu)和分布式緩存技術(shù)出現(xiàn)解決了大量用戶訪問帶來的高并發(fā)問題。但是,近年電子商務(wù)用戶的暴增,高并發(fā)的壓力越來越大,之前的分布式體系結(jié)構(gòu)已經(jīng)不能現(xiàn)在的發(fā)展需求。本文正是在這種背景下,我國京東、淘寶等電子商務(wù)平臺都開始去采用微服務(wù)體系結(jié)構(gòu)來重構(gòu)之前所用的那種架構(gòu)。多年來,在天貓的雙11日和京東618日中,基于微服務(wù)體系結(jié)構(gòu)的重構(gòu)電商平臺滿足了人們的期望,經(jīng)受住了巨大的流量和巨大的高并發(fā)。我國的電商平臺將進(jìn)入微服務(wù)體系結(jié)構(gòu)時代。
國外電商平臺發(fā)展的比較早。長期發(fā)展后,產(chǎn)生了亞馬遜等優(yōu)秀的企業(yè)。當(dāng)然,國外的電子商務(wù)平臺最初也采用單一的體系結(jié)構(gòu),之后隨著用戶數(shù)量的增加和各種需求的增加,單一體系結(jié)構(gòu)的缺點(diǎn)也出現(xiàn)了。面對上述問題,劉易斯和福勒在2014年精確地定義了微服務(wù)體系結(jié)構(gòu)是一種體系結(jié)構(gòu)模式,將單一和復(fù)雜的應(yīng)用程序劃分為一些能夠相互協(xié)調(diào)和協(xié)作的小型和獨(dú)立服務(wù)。亞馬遜等電子商務(wù)平臺已經(jīng)利用其固有的優(yōu)勢,將微服務(wù)體系結(jié)構(gòu)的理念應(yīng)用于他們的平臺當(dāng)中去。當(dāng)前,雖然電商業(yè)務(wù)在世界范圍內(nèi)發(fā)展迅速,但美國的電子商務(wù)水平仍處于世界領(lǐng)先水平。
 
2相關(guān)理論技術(shù)概述
2.1 SpringBoot技術(shù)概述
Springboot是一個全新的框架,更新了原有的模式。開發(fā)人員不需要反復(fù)配置某些資源文件而是采用統(tǒng)一的資源配置方式,這樣提高了項(xiàng)目前期建設(shè)和開發(fā)過程的效率。并且在Spring原有結(jié)構(gòu)的基礎(chǔ)上,對資源配置采用了具體的設(shè)計(jì)方法。并同時集成了其一些優(yōu)良特性,解決了版本沖突的問題。后來spring boot在開發(fā)領(lǐng)域就得到了廣泛的應(yīng)用。springboot框架有兩個基本功能:開箱即用和約定大于配置。開箱即用意味著開發(fā)人員不需要去配置相應(yīng)的資源包,并且資源在項(xiàng)目啟動時自動加載資源包,它可以使用Maven組件在POM文件中配置一些項(xiàng)目所需的資源依賴包,然后使用注解來實(shí)現(xiàn)自動注入資源,以取代繁瑣的XML文件配置,從而完成對象的生命周期管理。這樣開發(fā)人員就可以避免浪費(fèi)太多的時間進(jìn)行資源分配和管理,而只關(guān)注業(yè)務(wù)本身。約定大于配置的實(shí)質(zhì)是行為范式。在軟件開發(fā)過程中的一些原則是按照約定的設(shè)計(jì)規(guī)范進(jìn)行定義的,它設(shè)計(jì)目的是為了避免在設(shè)計(jì)中浪費(fèi)太多的時間來決定某些規(guī)則,以便于快速地進(jìn)行簡單靈活的開發(fā)工作,開發(fā)者只需要確定哪些內(nèi)容不符合設(shè)計(jì)中的規(guī)則。
2.2 微服務(wù)架構(gòu)概述
微服務(wù)架構(gòu)是分布式體系結(jié)構(gòu),即微服務(wù)體系結(jié)構(gòu)根據(jù)不同的功能模塊將復(fù)雜的系統(tǒng)劃分為粒度更小的微服務(wù)。各個微服務(wù)之間相互配合且相對獨(dú)立。微服務(wù)體系結(jié)構(gòu)最初是從SOA體系結(jié)構(gòu)演變而來的,后來隨著用戶數(shù)量急劇增加。SOA體系結(jié)構(gòu)已經(jīng)滿足不了需求復(fù)雜、并發(fā)強(qiáng)、數(shù)據(jù)量大、吞吐量高等情況的電商平臺。微服務(wù)體系結(jié)構(gòu)強(qiáng)調(diào)的是服務(wù)的粒度應(yīng)該很小,然后通過將應(yīng)用程序和服務(wù)分解為更小且可以進(jìn)行獨(dú)立開發(fā)、測試、部署和維護(hù)的服務(wù)。具有效率高、擴(kuò)展性強(qiáng)、響應(yīng)快和高并發(fā)性的特點(diǎn)。而微服務(wù)體系結(jié)構(gòu)需要在進(jìn)行拆分時應(yīng)保證體系結(jié)構(gòu)的穩(wěn)定性;各種微型服務(wù)的劃分在內(nèi)部應(yīng)該是非常一致的。各微服務(wù)都是松散耦合的;微服務(wù)是為了彌補(bǔ)單一體系結(jié)構(gòu)存在的擴(kuò)展性差、開發(fā)難度大、抗并發(fā)能力差等問題。并且微服務(wù)體系結(jié)構(gòu)具有以下優(yōu)點(diǎn):每個微服務(wù)只負(fù)責(zé)一個業(yè)務(wù)模塊,代碼非常聚合。各微服務(wù)之間的連接性較低,因此各微服務(wù)相對獨(dú)立,易于獨(dú)立開發(fā)、測試、部署、維護(hù)和擴(kuò)展。
2.3 SpringCloud技術(shù)概述
SpringCloud基于SpringBoot簡化了分布式系統(tǒng)基礎(chǔ)架構(gòu)的開發(fā),如服務(wù)注冊和發(fā)現(xiàn)、服務(wù)網(wǎng)關(guān)、斷路器、數(shù)據(jù)監(jiān)控、配置中心、服務(wù)調(diào)用和負(fù)載均衡。開發(fā)人員可以使用這些工具快速構(gòu)建基于微服務(wù)體系結(jié)構(gòu)的系統(tǒng)。Spring Cloud平臺的基本功能包括服務(wù)注冊和發(fā)現(xiàn)、服務(wù)網(wǎng)關(guān)和配置管理。
服務(wù)注冊和發(fā)現(xiàn):它是SpringCloud提供的注冊中心之一,其中包括SpringCloud Alibaba Nacos、Netflix Eureka、Apache zookeeper等組件。本文采用Nacos。Nacos可以提供服務(wù)注冊和服務(wù)發(fā)現(xiàn)。服務(wù)注冊的目的是注冊微服務(wù)名稱、微服務(wù)操作主機(jī)的IP地址和外部提供的端口號等信息;服務(wù)發(fā)現(xiàn)是當(dāng)需要使用某一個服務(wù)時,可以從注冊中心中獲取可以使用的服務(wù)信息,客戶端憑借此信息可以連接上服務(wù)氣端。
服務(wù)網(wǎng)關(guān):負(fù)責(zé)處理HTTP服務(wù)請求和連接。有Spring GateWay,Netflix Zuul等。本文采用Spring GateWay網(wǎng)關(guān)驚醒請求路由和用戶鑒權(quán)等。網(wǎng)關(guān)是微服務(wù)體系結(jié)構(gòu)中外部所有請求的統(tǒng)一接入點(diǎn)。其主要功能包括身份驗(yàn)證、請求分配、負(fù)載均衡、路由管理等功能。
服務(wù)調(diào)用:即一個服務(wù)調(diào)用另一個服務(wù)。在微服務(wù)體系結(jié)構(gòu)中,服務(wù)之間必然存在連接。本文采用了Feign組件進(jìn)行服務(wù)之間的調(diào)用。Feign是一個更方便的HTTP客戶端。您只需創(chuàng)建一個接口,然后在其上添加注解即可。將需要調(diào)用的方法定義成抽象方法,并不需要自己構(gòu)建 HTTP 請求。需要調(diào)用的服務(wù)引入這個接口,調(diào)用里面的方法這樣就完成了服務(wù)之間的調(diào)用。
服務(wù)熔斷:本文采用了Sentinel。由于服務(wù)共享問題,一個業(yè)務(wù)的請求鏈路通常很長。當(dāng)用戶發(fā)起訪問請求時,通常需要幾個微服務(wù)來執(zhí)行它們。高并發(fā)場景下,請求調(diào)用鏈對系統(tǒng)的穩(wěn)定性有很大影響。如果其中一個服務(wù)鏈路中存在網(wǎng)絡(luò)延遲等情況導(dǎo)致這個服務(wù)不可使用,導(dǎo)致請求阻塞,這可能導(dǎo)致服務(wù)雪崩連鎖效應(yīng)。服務(wù)熔斷是用來解決這種情況的。當(dāng)某一個服務(wù)無法正常提供服務(wù)時,它會將當(dāng)前接口與外部進(jìn)行隔離并且觸發(fā)服務(wù)熔斷。此后一段時間內(nèi),請求方的請求將直接失敗,直到這個服務(wù)恢復(fù)。
2.4 Redis技術(shù)概述
Redis是一個高性能的非關(guān)系的開源數(shù)據(jù)庫,它以鍵值對的形式保存和檢索數(shù)據(jù)。Redis采用C語言編寫,并提供了用于數(shù)據(jù)管理的原子操作,它與其他非關(guān)系數(shù)據(jù)庫不同,具有更豐富的數(shù)據(jù)類型和更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。但與此同時,Redis不僅可以作為緩存,而且還可以作為持久型數(shù)據(jù)庫使用。比起復(fù)雜的磁盤數(shù)據(jù)操作,內(nèi)存中的數(shù)據(jù)管理相對更加簡單一點(diǎn),其效率更。因此,在復(fù)雜的操作中,Redis可以完成很多工作。當(dāng)數(shù)據(jù)存儲在磁盤中時,磁盤上的文件以尾部追加的方式將數(shù)據(jù)存儲在文件末尾,這可以避免從磁盤檢索數(shù)據(jù)到內(nèi)存中時出現(xiàn)的隨機(jī)訪問,從而極大地提高了查詢性能。Redis經(jīng)常用作緩存以提高查詢的效率。緩存技術(shù)是指從磁盤讀取數(shù)據(jù)后將數(shù)據(jù)備份到內(nèi)存中。查詢數(shù)據(jù)時,必須先讀取內(nèi)存中的數(shù)據(jù)。如果無法讀取它們,則在磁盤上讀取它們。同時將讀取的數(shù)據(jù)備份到內(nèi)存中。內(nèi)存中的數(shù)據(jù)讀取速度比磁盤快數(shù)百倍,所以當(dāng)經(jīng)常需要讀取某一數(shù)據(jù)時,將它備份到緩存中,可以在緩存中快速地獲取數(shù)據(jù),以避免訪問磁盤來重新讀取數(shù)據(jù)。對于一些大型的系統(tǒng),使用Redis緩存技術(shù)可以大大提高頻繁訪問數(shù)據(jù)的速度。
2.5 ElasticSearch技術(shù)概述
ElasticSearch是一個分布式、可擴(kuò)展和實(shí)時性高的全文搜索引擎。而在各種搜索引擎中,Apache Lucene被公認(rèn)為最先進(jìn)、最高效、最全面的搜索引擎庫。ElasticSearch就是以它為基礎(chǔ)的。它需要集成到應(yīng)用程序中,才能發(fā)揮其強(qiáng)大的作用。ElasticSearch是用Java編寫的,并使用Lucene構(gòu)建其索引進(jìn)行檢索。采用簡單API來完成全文檢索功能。比起Lucence的復(fù)雜性,ElasticSearch明顯更簡單、更方便。ElasticSearch的實(shí)現(xiàn)原理主要分為以下幾個步驟:用戶先將數(shù)據(jù)上傳到ElasticSearch數(shù)據(jù)庫,然后通過分詞控制器將相關(guān)句子分割成單詞,并將其權(quán)重和分詞結(jié)果存儲在數(shù)據(jù)庫中,用戶搜索時根據(jù)權(quán)重以及分詞的結(jié)果將結(jié)果返回并呈現(xiàn)給用戶。ElasticSearch是開箱即用的,將全文檢索、分布式技術(shù)以及數(shù)據(jù)分析技術(shù)結(jié)合在一起,可以近乎實(shí)時的檢索和儲存數(shù)據(jù),可擴(kuò)展性強(qiáng),可以處理百萬級別的數(shù)據(jù)。
 
3微服務(wù)高并發(fā)電商平臺的需求分析
3.1 功能性需求分析
功能的需求決定了電商平臺必須提供的功能服務(wù),對功能進(jìn)行分析劃分出平臺必須完成的所有功能。經(jīng)過早期對用戶和市場的調(diào)研,微服務(wù)高并發(fā)的電商平臺功能模塊主要可以劃分為如下六個微服務(wù),分別是商品微服務(wù)、訂單管理微服務(wù)、購物車管理微服務(wù)、用戶管理微服務(wù)、秒殺微服務(wù)和評論微服務(wù)。
3.1.1 商品微服務(wù)的需求分析
商品微服務(wù)是微服務(wù)高并發(fā)電商平臺最重要的模塊之一。此微服務(wù)提供的功能包括門戶系統(tǒng)的商品信息的展示,如商品標(biāo)題、圖片、價格、品牌、分類等,商品的搜索,如按條件搜索、排序等搜素展示商品的信息。還有后臺的商品的管理,包括商品的增加刪除修改查詢,商品品牌的增加刪除修改查詢,商品的收藏查詢,商品的瀏覽記錄等功能。商品微服務(wù)功能用例圖如圖3-1,3-2所示。

 

圖3-1  商品微服務(wù)用戶功能用例圖
 

圖3-2  商品微服務(wù)管理員功能用例圖  
 
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/6509.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
肥城市| 余姚市| 永川市| 策勒县| 循化| 渝中区| 沂水县| 星子县| 漠河县| 永丰县| 芜湖市| 九台市| 无极县| 噶尔县| 珠海市| 宜春市| 务川| 桓台县| 富裕县| 嘉黎县| 巩义市| 精河县| 浦城县| 米易县| 农安县| 莒南县| 宜州市| 斗六市| 盖州市| 宁津县| 寻乌县| 兰考县| 浠水县| 双峰县| 新宁县| 巫山县| 南江县| 叙永县| 桂林市| 郧西县| 普兰店市|