国产女人被狂躁到高潮小说,亚洲日韩一区二区三区,色窝窝无码一区二区三区成人网站 ,丰满岳乱妇在线观看中字无码

400-800-9385
網站建設資訊詳細

高并發的電商平臺如何實現

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

 

圖3-1  商品微服務用戶功能用例圖
 

圖3-2  商品微服務管理員功能用例圖  
 
如沒特殊注明,文章均為方維網絡原創,轉載請注明來自http://www.sdlwjx666.com/news/6509.html