最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

基于微服務(wù)架構(gòu)的水果銷售系統(tǒng)的設(shè)計與實現(xiàn)

2023-05-07 09:58 作者:玟玟的大寶貝  | 我要投稿

訪問【W(wǎng)RITE-BUG數(shù)字空間】_[內(nèi)附完整源碼和文檔]

整體上為微服務(wù)架構(gòu),使用 SpringCloud 技術(shù),每個獨立的服務(wù)為一個單獨的 SpringBoot 工程;數(shù)據(jù)庫使用 MySQL 數(shù)據(jù)庫;分布式緩存使用 Redis,消息隊列使用 Kafka。包括基礎(chǔ)業(yè)務(wù)支撐服務(wù),訂單服務(wù),支付服務(wù),商品服務(wù),門店管理服務(wù),促銷活動服務(wù) 6 個微服務(wù)。詳細(xì)設(shè)計見md文件。

第 1 章緒論

1.1 論文研究主要內(nèi)容

互聯(lián)網(wǎng)的高速發(fā)展下,電子商務(wù)也得到了急速成長,各電商平臺業(yè)務(wù)流量逐步遞增,原來的整站架構(gòu)已經(jīng)無法滿足現(xiàn)有的需求,所以需要拆分業(yè)務(wù),將業(yè)務(wù)模塊化獨立成各個微服務(wù),加上容器,調(diào)度平臺,監(jiān)控等形成一個完整的微服務(wù)架構(gòu)。為此,特設(shè)計實現(xiàn)了基于微服務(wù)架構(gòu)的水果銷售系統(tǒng),其中包括基礎(chǔ)業(yè)務(wù)支撐服務(wù),訂單服務(wù),支付服務(wù),商品服務(wù),門店管理服務(wù),促銷活動服務(wù) 6 個微服務(wù)。

1.1.1 微服務(wù)架構(gòu)概述

微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終價值。每個服務(wù)運(yùn)行在其獨立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級的通信機(jī)制互相協(xié)作(通常是基于 HTTP 協(xié)議的 RESTfulAPI)。每個服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨立的部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,對具體的服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對其進(jìn)行構(gòu)建。

就我個人而言微服務(wù)架構(gòu) ≈ 模塊化開發(fā) + 分布式計算。不管微服務(wù)架構(gòu)的定義怎么樣,都是在描述一個核心思想:把大系統(tǒng)拆分成小型系統(tǒng),把大事化小,以降低系統(tǒng)的復(fù)雜性,從而大幅降低系統(tǒng)建設(shè)、升級、運(yùn)維的風(fēng)險和成本。

1.1.2 水果銷售系統(tǒng)

在如今各大電商平臺層出不窮的環(huán)境下,商品的分類專賣成為了一種趨勢。此系統(tǒng)是為了實現(xiàn)水果的專售并且實現(xiàn)果農(nóng)和買家的對接,消除第三方代理商的差價,在買家能買到更優(yōu)惠,更有品質(zhì)的前提下提升果農(nóng)的收入。

1.2 社區(qū)活躍狀態(tài)

自2014年MartinFowler在其博客上發(fā)表了“Microservices”一文(http://martinfowler.com/articles/microservices.html)以來,“微服務(wù)”這個詞在各大技術(shù)論壇和社區(qū)的迅速活躍起來,容器,PaaS,CloudNative,gRPC,ServiceMesh,Serverless等新技術(shù)新理念你方唱罷我登場,推動著我們來到了微服務(wù)2.0時代。

第 2 章關(guān)鍵技術(shù)介紹

2.1 關(guān)鍵性技術(shù)分析和介紹

2.1.1Springboot/cloud

基于 Springboot/cloud 的框架本質(zhì)上可以認(rèn)為是一種 RESTFul 框架(不是 RPC 框架),序列化協(xié)議主要采用基于文本的 JSON,通訊協(xié)議一般基于 HTTP。RESTFul 框架天然支持跨語言,任何語言只要有 HTTP 客戶端都可以接入調(diào)用,但是客戶端一般需要自己解析 payload。目前 Spring 框架也支持 Swagger 契約編程模型,能夠基于契約生成各種語言的強(qiáng)類型客戶端,極大方便不同語言棧的應(yīng)用接入,但是因為 RESTFul 框架和 Swagger 規(guī)范的弱契約特性,生成的各種語言客戶端的互操作性還是有不少坑的。3 月 1 號官方發(fā)布了 SpringBoot2.0,并提供了 Maven 中央倉庫地址,該版本支持 SpringFramework5.0。

2.1.2 服務(wù)注冊中心(Eureka)

SpringCloud體系,選擇Eureka是最佳搭配,Eureka在Netflix經(jīng)過大規(guī)模生產(chǎn)驗證,支持跨數(shù)據(jù)中心,客戶端配合Ribbon可以實現(xiàn)靈活的客戶端軟負(fù)載,Eureka目前在GitHub上有超過4.7k星。

2.1.3 服務(wù)網(wǎng)關(guān)(Zull)

SpringCloud 體系,則選擇 Zuul 是最佳搭配,Zuul 在 Netflix 經(jīng)過大規(guī)模生產(chǎn)驗證,支持靈活的動態(tài)過濾器腳本機(jī)制,異步性能不足(基于 Netty 的異步 Zuul 遲遲未能推出正式版)。Zuul 網(wǎng)關(guān)目前在 GitHub 上有超過 3.7k 星。

2.1.4 消息系統(tǒng)(Kafka)

后臺服務(wù)主要包括消息系統(tǒng),分布式緩存,分布式數(shù)據(jù)訪問層和任務(wù)調(diào)度系統(tǒng)。后臺服務(wù)是一個相對比較成熟的領(lǐng)域,很多開源產(chǎn)品基本可以開箱即用。

消息系統(tǒng),對于日志等可靠性要求不高的場景,則 Apache 頂級項目 Kafka 是社區(qū)標(biāo)配。對于可靠性要求較高的業(yè)務(wù)場景,Kafka 其實也是可以勝任,但企業(yè)需要根據(jù)具體場景,對 Kafka 的監(jiān)控和治理能力進(jìn)行適當(dāng)定制完善。

2.2 其他相關(guān)技術(shù)

2.2.1MySQL

MySQL,一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)。由于其體積小、速度快、成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。

2.2.2Maven

Maven,項目管理工具,包含了一個項目對象模型,一組標(biāo)準(zhǔn)集合,一個項目生命周期,一個依賴管理系統(tǒng),和用來運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。

2.2.3Redis

Redis,一個高性能的鍵值對數(shù)據(jù)庫。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 等不同編程語言客戶端,使用很方便。

第 3 章系統(tǒng)分析

3.1 構(gòu)架概述

常見的微服務(wù)組件及概念:

1.服務(wù)注冊,服務(wù)提供方將自己調(diào)用地址注冊到服務(wù)注冊中心,讓服務(wù)調(diào)用方能夠方便地找到自己。

2.服務(wù)發(fā)現(xiàn),服務(wù)調(diào)用方從服務(wù)注冊中心找到自己需要調(diào)用的服務(wù)的地址。

3.負(fù)載均衡,服務(wù)提供方一般以多實例的形式提供服務(wù),負(fù)載均衡功能能夠讓服務(wù)調(diào)用方連接到合適的服務(wù)節(jié)點。并且,節(jié)點選擇的工作對服務(wù)調(diào)用方來說是透明的。

4.服務(wù)網(wǎng)關(guān),服務(wù)網(wǎng)關(guān)是服務(wù)調(diào)用的唯一入口,可以在這個組件是實現(xiàn)用戶鑒權(quán)、動態(tài)路由、灰度發(fā)布、A/B 測試、負(fù)載限流等功能。

5.配置中心,將本地化的配置信息(properties,xml,yaml 等)注冊到配置中心,實現(xiàn)程序包在開發(fā)、測試、生產(chǎn)環(huán)境的無差別性,方便程序包的遷移。

6.API 管理,以方便的形式編寫及更新 API 文檔,并以方便的形式供調(diào)用者查看和測試。

7.集成框架,微服務(wù)組件都以職責(zé)單一的程序包對外提供服務(wù),集成框架以配置的形式將所有微服務(wù)組件(特別是管理端組件)集成到統(tǒng)一的界面框架下,讓用戶能夠在統(tǒng)一的界面中使用系統(tǒng)。

8.分布式事務(wù),對于重要的業(yè)務(wù),需要通過分布式事務(wù)技術(shù)(TCC、高可用消息服務(wù)、最大努力通知)保證數(shù)據(jù)的一致性。

9.調(diào)用鏈,記錄完成一個業(yè)務(wù)邏輯時調(diào)用到的微服務(wù),并將這種串行或并行的調(diào)用關(guān)系展示出來。在系統(tǒng)出錯時,可以方便地找到出錯點。

10.支撐平臺,系統(tǒng)微服務(wù)化后,系統(tǒng)變得更加碎片化,系統(tǒng)的部署、運(yùn)維、監(jiān)控等都比單體架構(gòu)更加復(fù)雜,那么,就需要將大部分的工作自動化?,F(xiàn)在,可以通過 Docker 等工具來中和這些微服務(wù)架構(gòu)帶來的弊端。例如持續(xù)集成、藍(lán)綠發(fā)布、健康檢查、性能健康等等。嚴(yán)重點,以我們公司的實踐經(jīng)驗,可以這么說,如果沒有合適的支撐平臺或工具,就不要使用微服務(wù)架構(gòu)。


基于微服務(wù)架構(gòu)的水果銷售系統(tǒng)的設(shè)計與實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
长沙县| 青神县| 班玛县| 改则县| 龙南县| 博爱县| 莱州市| 兰州市| 腾冲县| 大埔区| 宁晋县| 浦江县| 乌兰县| 兴海县| 固镇县| 泸溪县| 万山特区| 城市| 农安县| 新兴县| 许昌市| 开阳县| 郸城县| 万安县| 台山市| 彭泽县| 武隆县| 楚雄市| 灵台县| 枝江市| 揭阳市| 门源| 旅游| 临澧县| 萝北县| 陈巴尔虎旗| 德庆县| 井陉县| 阜康市| 西安市| 和林格尔县|