999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于微服務架構的商對客模式電商網(wǎng)站的設計與實現(xiàn)

2021-09-13 14:32:30張林
軟件工程 2021年9期

張林

摘? 要:基于微服務框架搭建的“商對客”商業(yè)模式(B2C商業(yè)模式)的商城平臺,對商城平臺前后端進行分離,前端使用vue.js(視圖層開發(fā)框架)進行頁面渲染,后端采用微服務框架SpringCloud;每個微服務單體模塊使用SpringBoot框架進行開發(fā),微服務單體模塊之間使用消息隊列RabbitMq進行通信,使用Redis技術進行緩存。該設計實現(xiàn)了高可用、高并發(fā)和可擴展的全品類商對客模式電商網(wǎng)站,使客戶與商家交易效率提高,給客戶帶來了良好的購物體驗。

關鍵詞:微服務架構;“商對客”商業(yè)模式;SpringCloud

中圖分類號:TP311? ? ?文獻標識碼:A

文章編號:2096-1472(2021)-09-55-03

Abstract: This paper is based on a mall platform of the business-to-customer business model (B2C business model) built on the microservices framework, separating front and back ends of the mall platform. vue.js (view layer development framework) is used in the front end for page rendering, and SpringCloud, a microservice framework, is used in the back end. Each microservice monomer module is developed by using SpringBoot framework, the message queue RabbitMq is used for communication between the microservice monomer modules, and Redis technology is used for caching. The design achieves a high-availability, high-concurrency and extensible business-to-customer e-mall website of full-category goods, improving the efficiency of customer-business transactions and bringing customers a good shopping experience.

Keywords: microservice architecture; business-to-customer business model; SpringCloud

1? ?引言(Introduction)

隨著科學技術的日益進步,電子商務成為社會活動的重要部分,用戶實現(xiàn)了在家一鍵下單,購買支付,一鍵退款,方便了人們的生活。以往的單體應用架構根本支撐不住如此強大的購物熱潮,在客流量增大的情況下,服務器常常因為無法承受高并發(fā)量而造成宕機的問題,使用戶體驗感差。而后發(fā)展的分布式架構和SOA(粗粒度服務)架構擴展性差,耦合性高,也不滿足此系統(tǒng)的需求。基于此,本文開發(fā)的系統(tǒng)商城平臺采用微服務架構,按照業(yè)務被拆分為多個微服務,以松耦合的方式被獨立部署[1],使用Spring(SpringCloud+SpringBoot)框架進行開發(fā),Nginx(輕量級web服務器)作為反向代理,Redis(內(nèi)存數(shù)據(jù)庫)作為緩存,MySQL(關系型數(shù)據(jù)庫)作為后臺數(shù)據(jù)庫;使用RabbitMq(消息隊列)方式提高了全品類網(wǎng)站平臺的響應速度,實現(xiàn)了商品顯示、商品搜索、加入購物車、下單購買等功能。

2? ?技術方案(Technical solutions)

2.1? ?微服務架構

2.1.1? ?微服務

微服務是面向服務軟件開發(fā)的最新發(fā)展趨勢,其通常采用去中心化的服務管理方式[2]。它的核心思想是根據(jù)業(yè)務需求,將業(yè)務拆分為一個一個的服務,實現(xiàn)去耦合,每個服務都對應唯一的業(yè)務,做到一個服務只做一件事,服務單一職責化,能夠被獨立部署到生產(chǎn)環(huán)境。服務內(nèi)部通過RPC或消息驅(qū)動API通信,對外通過RESTful API輕量交互信息[3]。微服務架構是粗粒度SOA架構的升華,其強調(diào)業(yè)務和功能徹底組件化和服務化。

微服務的優(yōu)點:

(1)服務獨立,一個服務只干一件事,獨立部署;

(2)開發(fā)簡單,效率提高,團隊之間工作互不干擾;

(3)微服務是松耦合的;

(4)易于和第三方集成。

微服務的缺點:

(1)開發(fā)和運營人員要處理分布式系統(tǒng)的復雜性;

(2)運維成本提高;

(3)數(shù)據(jù)一致性存在問題;

(4)服務間通信成本增大。

2.1.2? ?SpringCloud框架簡介

SpringCloud是一套基于SpringBoot構建的通用工具集[4],它是一系列框架的有序集合,這些框架致力于分布式服務治理;它本身不會提供具體功能的操作,主要專注于服務之間的通信、熔斷、監(jiān)控;它有很多組件來支持一套功能[5]。

2.2? “商對客”商業(yè)模式

“商對客”(即B2C)模式是企業(yè)對消費者的電子商務模式,企業(yè)建立自己的網(wǎng)站,在線上通過互聯(lián)網(wǎng)銷售自己的產(chǎn)品,宣傳自己的品牌,進行網(wǎng)絡推廣和網(wǎng)絡營銷,使線上的交易配合線下的銷售和宣傳,提升了企業(yè)的服務質(zhì)量,更好地增強了用戶的黏性。B2C是一種綜合性商城,不僅是一種百貨商店,還是多種服務商店;不僅具有較大的購物群體,也實現(xiàn)了穩(wěn)定的網(wǎng)絡平臺,在支付網(wǎng)絡以及安全體系創(chuàng)建方式上都實現(xiàn)了完整的建設系統(tǒng),為企業(yè)發(fā)展和人們消費提供了較大方便[6]。

2.3? ?Redis

Redis是基于鍵值對存儲結構的系統(tǒng),類屬于NoSQL[7]。Redis讀寫數(shù)據(jù)的時候不會受到硬盤I/O速度的限制,讀取速度非常快[8]。Redis中的Value支持五種數(shù)據(jù)類型:字符串、字符串列表、字符串集合、有序字符串集合、哈希。Redis支持數(shù)據(jù)備份到磁盤上,且操作具有原子性。

3 系統(tǒng)設計與實現(xiàn)(System design and implementation)

3.1? ?整體架構

靈耀商城平臺是一個全品類的網(wǎng)站平臺,在MVC架構的基礎上,根據(jù)具體功能和實際業(yè)務需求融入微服務架構。每個微服務模塊按照業(yè)務功能進行拆分,每個微服務的功能職責單一,除通用模塊Common外,其余模塊相互獨立,沒有功能性依賴,其他模塊如要使用則直接調(diào)用對外提供的API訪問接口。根據(jù)業(yè)務需求,將商城平臺的前后端進行分離開發(fā),并將整個系統(tǒng)按照業(yè)務功能劃分為多個子系統(tǒng),每個子系統(tǒng)仍然遵循MVC三層架構設計,分為界面層Controller、業(yè)務邏輯層Service和數(shù)據(jù)訪問層Dao,接口遵循RESTful架構風格對外提供服務。

系統(tǒng)為了防止網(wǎng)關故障從而導致整個系統(tǒng)無法響應的問題,設計了兩個網(wǎng)關,其中一個作為備用網(wǎng)關。系統(tǒng)前端使用域名訪問,此項目域名使用SwitHosts本地域名解析的方式,端口解析使用Nginx反向代理的方式,提高了網(wǎng)關的高可用性,網(wǎng)關與服務之間還配置了負載均衡和服務容錯。為了實現(xiàn)微服務之間的數(shù)據(jù)同步,使用RabbitMq消息隊列實現(xiàn)消息的異步發(fā)送接收。

在系統(tǒng)架構中,所有微服務在Eureka上進行注冊,整個服務端采用API網(wǎng)關負載均衡、服務路由、請求過濾等功能,運用Zuul組件進行服務路由。為了實現(xiàn)每個服務的獨立性,降低系統(tǒng)耦合,對外只提供API接口,http遠程調(diào)用組件Feign Client。

在此系統(tǒng)中,包括商家運營人員使用的后臺管理系統(tǒng)和用戶使用的前端門戶系統(tǒng)。總體框架圖如圖1所示。

3.2? ?靈耀商城功能設計

通過需求分析以及微服務架構設計思想,系統(tǒng)按照功能需求分為七個獨立的微服務模塊,如圖2所示。

3.3? ?運營人員后臺管理系統(tǒng)

運營管理人員登錄系統(tǒng)可以實現(xiàn)商品管理、人員管理、銷售管理以及權限管理。在商品管理中,通過搭建商品微服務實現(xiàn)分類管理、品牌管理、商品列表及規(guī)格參數(shù)管理。在配置文件中使用Eureka訂閱商品服務,每5 s就發(fā)送一次心跳,超時就過期,相關配置如圖3所示,而后編寫相應的代碼進行CRUD處理,前端頁面進行渲染。

3.4? ?前臺門戶網(wǎng)站

3.4.1? ?搜索

搭建搜索微服務模塊,實現(xiàn)用戶搜索某個商品。通過使用注解@EnableFeignClients開啟feign組件,定期在Eureka的注冊中心拉取搜索服務,在resources的配置文件中也需要配置相應的Eureka客戶端服務,用于向Eureka訂閱相關服務。由于復雜的業(yè)務和海量數(shù)據(jù)以及高并發(fā)需求,為了提高搜索速度,搜索功能使用Elasticsearch全文檢索技術,實現(xiàn)實時搜索以及分詞搜索并支持多用戶,例如搜索手機,查詢后前端頁面進行渲染如圖4所示。

3.4.2? ?購物車

搭建購物車微服務。如果用戶還未登錄,用戶瀏覽商品添加購物車時,添加到本地瀏覽器的Localstorage中,支付時跳轉(zhuǎn)到登錄頁面;如果用戶已經(jīng)登錄,用戶在選擇到自己心儀的產(chǎn)品時想加入購物車,則在添加商品時會添加到Redis中,并且查看購物車時,會先查看本地瀏覽器中是否有數(shù)據(jù),若沒有數(shù)據(jù)就直接調(diào)用Redis中的數(shù)據(jù);若有數(shù)據(jù)則將二者數(shù)據(jù)合并,最后更新到數(shù)據(jù)層MySQL數(shù)據(jù)庫中。購物車可以添加多個數(shù)量,如果不滿意可以刪除訂單或者移到“我的關注”中。用戶選擇好之后,系統(tǒng)會自動計算好選擇商品的總金額,用于用戶進行結算下單,如圖5所示。

3.4.3? ?用戶注冊登錄

搭建用戶注冊微服務,實現(xiàn)用戶注冊。用戶注冊采用短信驗證碼的方式,通過用戶名、密碼、確認密碼、手機號以及短信驗證碼的方式進行注冊,添加信息到數(shù)據(jù)庫中。為了防止密碼泄露,使用非對稱加密的方式對密碼進行加密保存到數(shù)據(jù)庫中。

搭建登錄認證微服務,實現(xiàn)用戶登錄。根據(jù)注冊的用戶名和密碼進行登錄,前端獲取用戶名和密碼,后端根據(jù)用戶名查詢到相對應的用戶id,使用相同的鹽進行加密并與數(shù)據(jù)庫中密碼項進行比較,若相同,則登錄成功。

3.5? ?數(shù)據(jù)庫設計

根據(jù)業(yè)務需求進行數(shù)據(jù)庫設計。(1)用戶注冊相關信息,便可添加用戶信息到用戶表中,登錄時查詢用戶表是否有響應的數(shù)據(jù)信息;(2)用戶登錄網(wǎng)站,瀏覽和查詢商品,商品的顯示按照不同通用規(guī)格參數(shù)和特有規(guī)格參數(shù)進行劃分;(3)用戶添加購物車,若登錄,便可添加至購物車信息表中,進行下單便可在訂單信息表中添加訂單信息,在訂單頁面進行查看。詳細E-R圖如圖6所示。

4? ?結論(Conclusion)

本文主要實現(xiàn)了基于微服務架構的一個B2C商業(yè)模式的靈耀商城的開發(fā),滿足了系統(tǒng)高并發(fā)、高可用、可擴展的需求,以及大規(guī)模用戶網(wǎng)上購物下單的基本功能需求。此前,系統(tǒng)的基本功能已開發(fā)完成,在進一步調(diào)試改進中。

參考文獻(References)

[1] 馮志勇,徐硯偉,薛霄,等.微服務技術發(fā)展的現(xiàn)狀與展望[J].計算機研究與發(fā)展,2020,57(5):1103-1122.

[2] 吳化堯,鄧文俊.面向微服務軟件開發(fā)方法研究進展[J].計算機研究與發(fā)展,2020,57(3):525-541.

[3] 黃顯琛.基于微服務架構的系統(tǒng)設計與實現(xiàn)[J].信息技術與信息化,2020,11(3):16-17.

[4] 劉斌.基于SpringCloud的電信綜合服務保障系統(tǒng)微服務改造之路[J].中小企業(yè)管理與科技,2019(11):90-91.

[5] 周永圣,候峰裕,孫雯,等.基于SpringCloud微服務架構的進銷存管理系統(tǒng)的設計與實現(xiàn)[J].工業(yè)控制計算機,2018,31(11):129-130,133.

[6] 謝孝淼.基于JAVA技術的B2C電子商城網(wǎng)站系統(tǒng)設計與實現(xiàn)[J].信息通信,2016(02)102-103.

[7] 秦溧,艾青.基于Redis技術的頁面緩存研究[J].科技風,2021(12):74-76.

[8] 張斌,任富彬,沈煒.基于SpringCloud的食品安全溯源系統(tǒng)的設計與實現(xiàn)[J].軟件工程,2019,22(8):27-30.

作者簡介:

張? 林(1996-),女,碩士,工程師.研究領域:分布式軟件系統(tǒng)開發(fā).

主站蜘蛛池模板: 欧美激情第一欧美在线| 666精品国产精品亚洲| 欧美精品高清| 中美日韩在线网免费毛片视频| 亚洲日韩欧美在线观看| av天堂最新版在线| 亚洲中文无码av永久伊人| 一级毛片高清| 一级爱做片免费观看久久| 国产福利一区在线| 在线观看视频一区二区| 人人澡人人爽欧美一区| 狠狠色婷婷丁香综合久久韩国| 午夜国产理论| 亚洲欧美不卡中文字幕| 黄色网站在线观看无码| 久久激情影院| 视频一本大道香蕉久在线播放| 91亚洲免费| 欧美午夜在线观看| 成人国产免费| 71pao成人国产永久免费视频| 91亚洲国产视频| 女人毛片a级大学毛片免费| 国产剧情一区二区| 欧美黄网站免费观看| 91无码人妻精品一区二区蜜桃| 亚洲欧美日韩天堂| 午夜免费小视频| 欧美日韩v| 欧美无专区| 国产哺乳奶水91在线播放| 一级香蕉人体视频| 中文字幕无码中文字幕有码在线| 亚洲欧美日韩另类| 久久情精品国产品免费| 久久综合亚洲鲁鲁九月天| 国产偷国产偷在线高清| 久久大香香蕉国产免费网站| 国产乱子伦手机在线| 午夜一级做a爰片久久毛片| 日韩 欧美 小说 综合网 另类| 亚洲三级视频在线观看| 中文字幕乱码中文乱码51精品| 国产高潮流白浆视频| 不卡色老大久久综合网| 99re视频在线| 国产午夜人做人免费视频中文 | 欧美综合一区二区三区| 91探花国产综合在线精品| 国产精品久久久久鬼色| 亚洲日本中文综合在线| 91无码人妻精品一区二区蜜桃 | 69av免费视频| 一本综合久久| 国产精品一区二区不卡的视频| 中日韩一区二区三区中文免费视频 | 三级毛片在线播放| 国产成人无码Av在线播放无广告| 欧美亚洲香蕉| 免费A∨中文乱码专区| 国产91色在线| 无码啪啪精品天堂浪潮av| 永久成人无码激情视频免费| 美女啪啪无遮挡| 国产精品视频第一专区| 99re在线视频观看| 国产日韩欧美一区二区三区在线| 天堂成人av| 亚洲AV无码一二区三区在线播放| 免费黄色国产视频| 天天视频在线91频| 欧美丝袜高跟鞋一区二区| 72种姿势欧美久久久大黄蕉| 国产精品片在线观看手机版| 色香蕉影院| 久久国产高清视频| 亚洲无码高清一区二区| 欧美啪啪网| 国产专区综合另类日韩一区| 天堂在线www网亚洲| 亚洲天堂网视频|