Java開源商城單體架構(gòu)和微服務(wù)架構(gòu)區(qū)別

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

概述

BizSpring移動全端國際化電商平臺,是建立在Spring Cloud 基礎(chǔ)上的微服務(wù)應(yīng)用尿招,服務(wù)化是系統(tǒng)達到一定規(guī)模以后的必然選擇,主流的互聯(lián)網(wǎng)公司基本都在遷移到服務(wù)化架構(gòu)。

我們的微服務(wù)化架構(gòu)給客戶帶來更多便捷搅方,每個開發(fā)團隊及各人更加專注于自身業(yè)務(wù)的開發(fā)谬哀,每個服務(wù)獨立開發(fā)刺覆、部署、更新可以選擇更加適合的技術(shù)體系史煎,每個服務(wù)只需要對外提供接口隱藏了內(nèi)部復(fù)雜的實現(xiàn)方式對調(diào)用方更加友好谦屑。

Spring Cloud 微服務(wù)架構(gòu)基于 Spring Boot 框架,是由一系列框架式組件組成的篇梭,這些組件包括注冊中心伦仍、服務(wù)網(wǎng)管、服務(wù)調(diào)用很洋、負載均衡充蓝、限流降級等等。

單體服務(wù)架構(gòu)

單體服務(wù)架構(gòu)是前些年使用的一種設(shè)計模式,即用戶交互端+服務(wù)器端架構(gòu)谓苟,將應(yīng)用簡單的分為前端和后端兩部分官脓,前端負責(zé)顯示界面和處理用戶交互,服務(wù)器負責(zé)處理業(yè)務(wù)邏輯和存儲數(shù)據(jù)涝焙。


單體服務(wù)架構(gòu)圖

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

不同于傳統(tǒng)的單體服務(wù)卑笨,微服務(wù)架構(gòu)是一種將應(yīng)用程序分為多個小型、獨立的服務(wù)的軟件架構(gòu)仑撞。這些服務(wù)可以通過輕量級通信機制進行通信赤兴,每個服務(wù)都有自己的數(shù)據(jù)庫和應(yīng)用程序代碼,每個服務(wù)運行在自己的進程中隧哮。這種模式使得每個服務(wù)可以獨立部署桶良、擴展和維護,從而提高應(yīng)用程序的可靠性沮翔,這種架構(gòu)可以更好地支持快速迭代和部署陨帆,提高開發(fā)效率和靈活性。


微服務(wù)架構(gòu)圖

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

微服務(wù)架構(gòu)風(fēng)格是一類將單一應(yīng)用程序作為由眾多小型服務(wù)構(gòu)成之套件加以開發(fā)的方式采蚀,其中各項服務(wù)都擁有自己的進程并利用輕量化機制(通常為HTTP源API)實現(xiàn)通信疲牵。這些服務(wù)圍繞業(yè)務(wù)功能建立而成,且憑借自動化部署機制實現(xiàn)獨立部署榆鼠。

微服務(wù)的特點

應(yīng)用程序邏輯分為明確定義的職責(zé)范圍的粒度組件纲爸,這些組件相互協(xié)調(diào)提供解決方案每一個組件都有一個小的職責(zé)領(lǐng)域,可以完全部署妆够,也就是說一個服務(wù)可以跨越多個應(yīng)用程序復(fù)用(獨立部署和維護)服務(wù)之間通信基于一些基本的原則缩焦,如服務(wù)采用http + Json 這樣的輕量級通信協(xié)議,在不同服務(wù)之間進行數(shù)據(jù)交互责静。這樣不同服務(wù)可以使用不同的技術(shù)袁滥,互不影響,采用輕量級的通信協(xié)議作為通信原則灾螃、松耦合题翻。微服務(wù)結(jié)構(gòu)的通用性通過服務(wù)實現(xiàn)應(yīng)用的組件化(按功能拆分、可獨立部署和維護)圍繞業(yè)務(wù)能力組織服務(wù)腰鬼,根據(jù)業(yè)務(wù)不同的需求進行不同組件的使用所做產(chǎn)品非項目化嵌赠,對于平臺具有一定的通用性

微服務(wù)架構(gòu)的五大優(yōu)勢

提高速度和工作效率

微服務(wù)架構(gòu)的最大優(yōu)勢之一是,它將應(yīng)用分解為多個可管理的服務(wù)熄赡,從而解決了速度和工作效率問題姜挺。不同的團隊可以同時開發(fā)不同的應(yīng)用組件。由于微服務(wù)之間在結(jié)構(gòu)上互不依賴彼硫,因此一個團隊永遠不必等待其他團隊完成其工作后再創(chuàng)建或更改微服務(wù)炊豪。另外凌箕,獨立的微服務(wù)更易于定位和修改。每個微服務(wù)均可單獨測試词渤,因此您可以加快質(zhì)量保證流程牵舱。而且能夠在開發(fā)其他組件時測試已開發(fā)好的組件。

圍繞業(yè)務(wù)功能組織實施

微服務(wù)允許根據(jù)業(yè)務(wù)優(yōu)先級來組織團隊和流程缺虐,支持構(gòu)建產(chǎn)品而非項目芜壁,團隊將專注于構(gòu)建業(yè)務(wù)功能,而不是編寫用于粘合各個功能的代碼高氮。因此你所創(chuàng)建的服務(wù)能夠適應(yīng)多種環(huán)境慧妄。可以在多個業(yè)務(wù)流程中重復(fù)使用同一 服務(wù)剪芍,甚至還能夠按需通過不同的業(yè)務(wù)渠道使用同一服務(wù)塞淹。每位團隊成員分別負責(zé)某項服務(wù),從而組成一支分工明確的跨職能團隊紊浩。

輕松構(gòu)建和維護應(yīng)用

微服務(wù)架構(gòu)的最大優(yōu)勢或許支持輕松構(gòu)建和維護應(yīng)用,微服務(wù)旨在化繁為簡疗锐。當(dāng)應(yīng)用被設(shè)計成多個較小的部分時坊谁,便更易于構(gòu)建和維護,管理代碼也變得輕松很多滑臊,因為每個微服務(wù)都是單獨的代碼段口芍。也可以使用不同的數(shù)據(jù)庫、編程語言和軟件環(huán)境來實現(xiàn)服務(wù)雇卷。因此每個服務(wù)都能夠獨立部署鬓椭、構(gòu)建、重新部署和管理关划。如一個微服務(wù)分配了太多的內(nèi)存小染,或者給處理器帶來了繁重的負載。對于微服務(wù)架構(gòu)贮折,這只會影響該特定服務(wù)裤翩,一個微服務(wù)的問題不會影響到整個系統(tǒng)。

提高可擴展性

微服務(wù)的另一大優(yōu)勢是可幫助提高可擴展性调榄。因為每個微服務(wù)都可以自主運行踊赠,因此您能夠更輕松地添加、更新每庆、刪除并擴展單個微服務(wù)筐带。開發(fā)人員可以在不破壞應(yīng)用中其它微服務(wù)的情況下做到這一點。當(dāng)對應(yīng)用的需求增加時缤灵,您只需將更多的資源轉(zhuǎn)移或升級到受需求增加影響的微服務(wù)即可伦籍,甚至可以使用容器自動擴展各個服務(wù)為服務(wù)集群蓝晒。通過只擴展所需的服務(wù),幫助公司節(jié)省大量的服務(wù)器資源成本鸽斟。

提升數(shù)據(jù)安全性

微服務(wù)架構(gòu)有助于提升數(shù)據(jù)安全性拔创。當(dāng)微服務(wù)之間建立連接時,借助安全的API富蓄,您可確保信息僅可供授權(quán)用戶剩燥、應(yīng)用和服務(wù)器訪問。

當(dāng)您的微服務(wù)正在管理敏感的財務(wù)立倍、賬務(wù)相關(guān)業(yè)務(wù)機密性信息灭红,安全的API 支持您全面控制哪些數(shù)據(jù)可供應(yīng)用訪問。

單體服務(wù)架構(gòu)的劣勢

開發(fā)速度緩慢

只能采?同?種技術(shù)口注,很難?不同的語?或者語?不同版本開發(fā)不同功能变擒;

難以升級技術(shù)棧

團隊長期依賴一套相同的技術(shù),單體架構(gòu)使得采用新的框架和編程語言變的及其困難寝志。

系統(tǒng)耦合性強娇斑,

?旦其中?個模塊有問題,整個系統(tǒng)就癱瘓了材部;?旦升級其中?個模塊毫缆,整個系統(tǒng)就停機了,難以擴展乐导,不能做到按需擴展苦丁,只能是擴展整個系統(tǒng)。要上線必須?起上線物臂,互相等待旺拉,?法快速響應(yīng)需求,應(yīng)用程序缺乏故障隔離機制棵磷,因為所有模塊都運行在同一個進程當(dāng)中蛾狗。

服務(wù)不抗壓、穩(wěn)定性差

單體程序缺乏可靠性仪媒,用戶量提升將導(dǎo)致頻繁的系統(tǒng)故障和宕機淘太。

功能越強、代碼越混亂

電商系統(tǒng)本身功能過于龐大和復(fù)雜规丽,于單體系統(tǒng)以至于任何一個開發(fā)者都很難以理解它的全部業(yè)務(wù)蒲牧。這種極度的復(fù)雜度會形成惡性循環(huán),功能越擴展赌莺,越難以下手冰抢。

難以維護

由于電商系統(tǒng)功能模塊諸多過于龐大和復(fù)雜,無論是前期開發(fā)人員還是后期新聘技術(shù)人員都難以新增和維護系統(tǒng)功能艘狭,每一次更改都更容易出錯且更改后其他人更難理解挎扰。

新版發(fā)布周期長翠订,且容易出問題

代碼庫復(fù)雜,以至于一個更改可能引起的影響是未知的遵倦。開發(fā)團隊分為多個小組時尽超,當(dāng)需要發(fā)布新版本的時候漫長的合并和測試時間非常長。

難以聘到技術(shù)人員

對于新手來說梧躺,看到了一坨龐大的代碼似谁,真心是無從下手,你讓他接手或者干點活啥的掠哥,成本都更高的巩踏,且容易犯錯。對于有代碼情操的人续搀,是會立刻走人的塞琼。

BizSpring 電商平臺微服務(wù)架構(gòu)

核心框架:Springboot2、Spring Cloud禁舷、Spring Cloud Alibaba

配置中心:Nacos

負載均衡:Open Feign彪杉、Ribbon

服務(wù)調(diào)用:Feign

服務(wù)容錯:Alibaba Sentinel

API網(wǎng)關(guān):Spring Cloud Gateway

分布式事務(wù):Seata

持久層框架:MyBatis-plus

高性能緩存:Redis 、Redis Cluster

分布式鎖:Redisson

文件管理:Alibaba oss /七牛云/騰訊cos/Minio

SMS短信:Alibaba SMS

安全:JWT+oauth2

數(shù)據(jù)庫:Mysql8+

API管理:Swagger2

搜索引擎:Elasticsearch 7.6.2

JDK版本:Java8+

管理平臺框架:Vue3+ElementPlus

商家平臺框架:Uni-app(一套代碼牵咙,多端發(fā)布)

商城平臺框架:Uni-app(一套代碼派近,多端發(fā)布)

BizSpring商城的架構(gòu)優(yōu)勢

BizSpring 電商平臺使用業(yè)內(nèi)最優(yōu)秀的服務(wù)設(shè)計理念,將電商整套流程包括商品(product)霜大、訂單(order)构哺,店鋪(store)革答、營銷(marketing)分別建設(shè)為不同的服務(wù)战坤,降低了電商系統(tǒng)業(yè)務(wù)的耦合性、各服務(wù)可單獨部署残拐,用戶量攀升的期途茫,將業(yè)務(wù)壓力較大的服務(wù)可建集群,進一步分擔(dān)平臺壓力溪食,頂級式提高架構(gòu)的擴展性囊卜。于開發(fā)人員將能更簡捷的自己業(yè)務(wù)范圍的功能實現(xiàn)完善好。

Elasticsearch搜素引擎

Elasticsearch 為架構(gòu)提供高效的搜索和聚合功能错沃,支持實時數(shù)據(jù)處理,在商城數(shù)據(jù)寫入時立即建立索引。支持多種查詢語句圆存,并能夠快速地搜索和處理商品店归、訂單、評論醒叁、售后的大量數(shù)據(jù)搜索司浪。

Redis集群存儲平臺緩存

使用redis集群存儲平臺緩存泊业,提升數(shù)據(jù)可靠性,提高讀寫能力啊易,提高了系統(tǒng)運行中緩存的穩(wěn)定性吁伺。

Nacos注冊中心

BizSpring中服務(wù)啟動后將自己注冊到注冊中心(Nacos),調(diào)用方調(diào)用時到注冊中心查詢可用的服務(wù)然后完成調(diào)用租谈。注冊中心的穩(wěn)定性直接影響了整個微服務(wù)架構(gòu)的可靠性篮奄,所以注冊中心的選型至關(guān)重要。

OpenFeign Ribbon負載均衡

BizSpring 服務(wù)調(diào)用使用 OpenFeign 和 Ribbon 配合完成垦垂,OpenFeign實現(xiàn)服務(wù)調(diào)用Ribbon做到負載均衡宦搬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市劫拗,隨后出現(xiàn)的幾起案子间校,更是在濱河造成了極大的恐慌,老刑警劉巖页慷,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔足,死亡現(xiàn)場離奇詭異,居然都是意外死亡酒繁,警方通過查閱死者的電腦和手機滓彰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來州袒,“玉大人揭绑,你說我怎么就攤上這事±煽蓿” “怎么了他匪?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夸研。 經(jīng)常有香客問我邦蜜,道長,這世上最難降的妖魔是什么亥至? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任悼沈,我火速辦了婚禮,結(jié)果婚禮上姐扮,老公的妹妹穿的比我還像新娘絮供。我一直安慰自己,他們只是感情好茶敏,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布壤靶。 她就那樣靜靜地躺著,像睡著了一般睡榆。 火紅的嫁衣襯著肌膚如雪萍肆。 梳的紋絲不亂的頭發(fā)上袍榆,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音塘揣,去河邊找鬼包雀。 笑死,一個胖子當(dāng)著我的面吹牛亲铡,可吹牛的內(nèi)容都是我干的才写。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼奖蔓,長吁一口氣:“原來是場噩夢啊……” “哼赞草!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吆鹤,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤厨疙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疑务,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沾凄,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年知允,在試婚紗的時候發(fā)現(xiàn)自己被綠了撒蟀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡温鸽,死狀恐怖保屯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涤垫,我是刑警寧澤姑尺,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站雹姊,受9級特大地震影響股缸,放射性物質(zhì)發(fā)生泄漏衡楞。R本人自食惡果不足惜吱雏,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘾境。 院中可真熱鬧歧杏,春花似錦、人聲如沸迷守。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兑凿。三九已至凯力,卻和暖如春茵瘾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咐鹤。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工拗秘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祈惶。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓雕旨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捧请。 傳聞我的和親對象是個殘疾皇子凡涩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容