商對客模式電商網站設計與實現
時間:2022-09-09 11:12:21
導語:商對客模式電商網站設計與實現一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:基于微服務框架搭建的“商對客”商業模式(B2C商業模式)的商城平臺,對商城平臺前后端進行分離,前端使用vue.js(視圖層開發框架)進行頁面渲染,后端采用微服務框架SpringCloud;每個微服務單體模塊使用SpringBoot框架進行開發,微服務單體模塊之間使用消息隊列RabbitMq進行通信,使用Redis技術進行緩存。該設計實現了高可用、高并發和可擴展的全品類商對客模式電商網站,使客戶與商家交易效率提高,給客戶帶來了良好的購物體驗。
關鍵詞:微服務架構;“商對客”商業模式;SpringCloud
1引言
(Introduction)隨著科學技術的日益進步,電子商務成為社會活動的重要部分,用戶實現了在家一鍵下單,購買支付,一鍵退款,方便了人們的生活。以往的單體應用架構根本支撐不住如此強大的購物熱潮,在客流量增大的情況下,服務器常常因為無法承受高并發量而造成宕機的問題,使用戶體驗感差。而后發展的分布式架構和SOA(粗粒度服務)架構擴展性差,耦合性高,也不滿足此系統的需求。基于此,本文開發的系統商城平臺采用微服務架構,按照業務被拆分為多個微服務,以松耦合的方式被獨立部署[1],使用Spring(SpringCloud+SpringBoot)框架進行開發,Nginx(輕量級web服務器)作為反向,Redis(內存數據庫)作為緩存,MySQL(關系型數據庫)作為后臺數據庫;使用RabbitMq(消息隊列)方式提高了全品類網站平臺的響應速度,實現了商品顯示、商品搜索、加入購物車、下單購買等功能。
2技術方案(Technicalsolutions)
2.1微服務架構
2.1.1微服務微服務是面向服務軟件開發的最新發展趨勢,其通常采用去中心化的服務管理方式[2]。它的核心思想是根據業務需求,將業務拆分為一個一個的服務,實現去耦合,每個服務都對應唯一的業務,做到一個服務只做一件事,服務單一職責化,能夠被獨立部署到生產環境。服務內部通過RPC或消息驅動API通信,對外通過RESTfulAPI輕量交互信息[3]。微服務架構是粗粒度SOA架構的升華,其強調業務和功能徹底組件化和服務化。微服務的優點:(1)服務獨立,一個服務只干一件事,獨立部署;(2)開發簡單,效率提高,團隊之間工作互不干擾;(3)微服務是松耦合的;(4)易于和第三方集成。微服務的缺點:(1)開發和運營人員要處理分布式系統的復雜性;(2)運維成本提高;(3)數據一致性存在問題;(4)服務間通信成本增大。2.1.2SpringCloud框架簡介SpringCloud是一套基于SpringBoot構建的通用工具集[4],它是一系列框架的有序集合,這些框架致力于分布式服務治理;它本身不會提供具體功能的操作,主要專注于服務之間的通信、熔斷、監控;它有很多組件來支持一套功能[5]。
2.2“商對客”商業模式
“商對客”(即B2C)模式是企業對消費者的電子商務模式,企業建立自己的網站,在線上通過互聯網銷售自己的產品,宣傳自己的品牌,進行網絡推廣和網絡營銷,使線上的交易配合線下的銷售和宣傳,提升了企業的服務質量,更好地增強了用戶的黏性。B2C是一種綜合性商城,不僅是一種百貨商店,還是多種服務商店;不僅具有較大的購物群體,也實現了穩定的網絡平臺,在支付網絡以及安全體系創建方式上都實現了完整的建設系統,為企業發展和人們消費提供了較大方便[6]。
2.3Redis
Redis是基于鍵值對存儲結構的系統,類屬于NoSQL[7]。Redis讀寫數據的時候不會受到硬盤I/O速度的限制,讀取速度非常快[8]。Redis中的Value支持五種數據類型:字符串、字符串列表、字符串集合、有序字符串集合、哈希。Redis支持數據備份到磁盤上,且操作具有原子性。
3系統設計與實現(Systemdesignandimplementation)
3.1整體架構
靈耀商城平臺是一個全品類的網站平臺,在MVC架構的基礎上,根據具體功能和實際業務需求融入微服務架構。每個微服務模塊按照業務功能進行拆分,每個微服務的功能職責單一,除通用模塊Common外,其余模塊相互獨立,沒有功能性依賴,其他模塊如要使用則直接調用對外提供的API訪問接口。根據業務需求,將商城平臺的前后端進行分離開發,并將整個系統按照業務功能劃分為多個子系統,每個子系統仍然遵循MVC三層架構設計,分為界面層Controller、業務邏輯層Service和數據訪問層Dao,接口遵循RESTful架構風格對外提供服務。系統為了防止網關故障從而導致整個系統無法響應的問題,設計了兩個網關,其中一個作為備用網關。系統前端使用域名訪問,此項目域名使用SwitHosts本地域名解析的方式,端口解析使用Nginx反向的方式,提高了網關的高可用性,網關與服務之間還配置了負載均衡和服務容錯。為了實現微服務之間的數據同步,使用RabbitMq消息隊列實現消息的異步發送接收。在系統架構中,所有微服務在Eureka上進行注冊,整個服務端采用API網關負載均衡、服務路由、請求過濾等功能,運用Zuul組件進行服務路由。為了實現每個服務的獨立性,降低系統耦合,對外只提供API接口,http遠程調用組件FeignClient。在此系統中,包括商家運營人員使用的后臺管理系統和用戶使用的前端門戶系統。總體框架圖如圖1所示。
3.2靈耀商城功能設計
通過需求分析以及微服務架構設計思想,系統按照功能需求分為七個獨立的微服務模塊,如圖2所示。
3.3運營人員后臺管理系統
運營管理人員登錄系統可以實現商品管理、人員管理、銷售管理以及權限管理。在商品管理中,通過搭建商品微服務實現分類管理、品牌管理、商品列表及規格參數管理。在配置文件中使用Eureka訂閱商品服務,每5s就發送一次心跳,超時就過期,相關配置如圖3所示,而后編寫相應的代碼進行CRUD處理,前端頁面進行渲染。
3.4前臺門戶網站
3.4.1搜索搭建搜索微服務模塊,實現用戶搜索某個商品。通過使用注解@EnableFeignClients開啟feign組件,定期在Eureka的注冊中心拉取搜索服務,在resources的配置文件中也需要配置相應的Eureka客戶端服務,用于向Eureka訂閱相關服務。由于復雜的業務和海量數據以及高并發需求,為了提高搜索速度,搜索功能使用Elasticsearch全文檢索技術,實現實時搜索以及分詞搜索并支持多用戶,例如搜索手機,查詢后前端頁面進行渲染如圖4所示。3.4.2購物車搭建購物車微服務。如果用戶還未登錄,用戶瀏覽商品添加購物車時,添加到本地瀏覽器的Localstorage中,支付時跳轉到登錄頁面;如果用戶已經登錄,用戶在選擇到自己心儀的產品時想加入購物車,則在添加商品時會添加到Redis中,并且查看購物車時,會先查看本地瀏覽器中是否有數據,若沒有數據就直接調用Redis中的數據;若有數據則將二者數據合并,最后更新到數據層MySQL數據庫中。購物車可以添加多個數量,如果不滿意可以刪除訂單或者移到“我的關注”中。用戶選擇好之后,系統會自動計算好選擇商品的總金額,用于用戶進行結算下單,如圖5所示。3.4.3用戶注冊登錄搭建用戶注冊微服務,實現用戶注冊。用戶注冊采用短信驗證碼的方式,通過用戶名、密碼、確認密碼、手機號以及短信驗證碼的方式進行注冊,添加信息到數據庫中。為了防止密碼泄露,使用非對稱加密的方式對密碼進行加密保存到數據庫中。搭建登錄認證微服務,實現用戶登錄。根據注冊的用戶名和密碼進行登錄,前端獲取用戶名和密碼,后端根據用戶名查詢到相對應的用戶id,使用相同的鹽進行加密并與數據庫中密碼項進行比較,若相同,則登錄成功。
3.5數據庫設計
根據業務需求進行數據庫設計。(1)用戶注冊相關信息,便可添加用戶信息到用戶表中,登錄時查詢用戶表是否有響應的數據信息;(2)用戶登錄網站,瀏覽和查詢商品,商品的顯示按照不同通用規格參數和特有規格參數進行劃分;(3)用戶添加購物車,若登錄,便可添加至購物車信息表中,進行下單便可在訂單信息表中添加訂單信息,在訂單頁面進行查看。詳細E-R圖如圖6所示。
4結論(Conclusion)
本文主要實現了基于微服務架構的一個B2C商業模式的靈耀商城的開發,滿足了系統高并發、高可用、可擴展的需求,以及大規模用戶網上購物下單的基本功能需求。此前,系統的基本功能已開發完成,在進一步調試改進中。
參考文獻(References)
[1]馮志勇,徐硯偉,薛霄,等.微服務技術發展的現狀與展望[J].計算機研究與發展,2020,57(5):1103-1122.
[2]吳化堯,鄧文俊.面向微服務軟件開發方法研究進展[J].計算機研究與發展,2020,57(3):525-541.
[3]黃顯琛.基于微服務架構的系統設計與實現[J].信息技術與信息化,2020,11(3):16-17.
[4]劉斌.基于SpringCloud的電信綜合服務保障系統微服務改造之路[J].中小企業管理與科技,2019(11):90-91.
[5]周永圣,候峰裕,孫雯,等.基于SpringCloud微服務架構的進銷存管理系統的設計與實現[J].工業控制計算機,2018,31(11):129-130,133.
[6]謝孝淼.基于JAVA技術的B2C電子商城網站系統設計與實現[J].信息通信,2016(02)102-103.
[7]秦溧,艾青.基于Redis技術的頁面緩存研究[J].科技風,2021(12):74-76.
[8]張斌,任富彬,沈煒.基于SpringCloud的食品安全溯源系統的設計與實現[J].軟件工程,2019,22(8):27-30.
作者:張林 單位:中國科學技術大學計算機科學與技術學院
- 上一篇:數控機床機械結構設計優化舉措
- 下一篇:生理學混合式教學模式分析