有個藍色章魚做標志的網(wǎng)站seo和sem的聯(lián)系
SpringCloud
?SOA 和微服務(wù)的區(qū)別?(必會)
談到 SOA 和微服務(wù)的區(qū)別, 那咱們先談?wù)劶軜?gòu)的演變
1. 集中式架構(gòu) 項目功能簡單, 一個項目只需一個應(yīng)用, 將所有功能部署在一起, 這樣的架構(gòu)好處是減 少了部署節(jié)點和成本. 缺點: 代碼耦合,開發(fā)維護困難
2. 垂直拆分架構(gòu) 當訪問量逐漸增大,單一應(yīng)用無法滿足需求,此時為了應(yīng)對更高的并發(fā)和業(yè)務(wù)需求,我 們根據(jù)業(yè)務(wù)功能對系統(tǒng)進行拆分
優(yōu)點: ? 系統(tǒng)拆分實現(xiàn)了流量分擔,解決了并發(fā)問題 ? 可以針對不同模塊進行優(yōu)化, 方便水平擴展,負載均衡,容錯率提高 缺點: ? 系統(tǒng)間相互獨立,會有很多重復(fù)開發(fā)工作,影響開發(fā)效率
3.分布式服務(wù) 當垂直應(yīng)用越來越多, 隨著項目業(yè)務(wù)功能越來越復(fù)雜, 并非垂直應(yīng)用這一條線進行數(shù)據(jù) 調(diào)用, 應(yīng)用和應(yīng)用之間也會互相調(diào)用, 也就是完成某一個功能,需要多個應(yīng)用互相調(diào)用, 這就 是將功能拆完來完成的分布式架構(gòu).
優(yōu)點: 將基礎(chǔ)服務(wù)進行了抽取,系統(tǒng)間相互調(diào)用,提高了代碼復(fù)用和開發(fā)效率 缺點: 系統(tǒng)間耦合度變高,調(diào)用關(guān)系錯綜復(fù)雜,難以維護.
服務(wù)治理架構(gòu) SOA SOA?
面向服務(wù)的架構(gòu) 當服務(wù)越來越多,容量的評估,小服務(wù)資源的浪費等問題逐漸顯現(xiàn),此時需增加一個調(diào) 度中心基于訪問壓力實時管理集群容量,提高集群利用率。此時,用于提高機器利用率的資 源調(diào)度和治理中心(SOA)是關(guān)鍵, 而最初的服務(wù)治理基石是 Dubbo 服務(wù)治理
以前分布式服務(wù)的問題?
? 服務(wù)越來越多,需要管理每個服務(wù)的地址, 調(diào)用關(guān)系錯綜復(fù)雜,難以理清依賴關(guān)系 ? 服務(wù)過多,服務(wù)狀態(tài)難以管理,無法根據(jù)服務(wù)情況動態(tài)管理 SOA 服務(wù)治理架構(gòu)的優(yōu)點: ? 服務(wù)注冊中心,實現(xiàn)服務(wù)自動注冊和發(fā)現(xiàn),無需人為記錄服務(wù)地址 ? 服務(wù)自動訂閱,服務(wù)列表自動推送,服務(wù)調(diào)用透明化,無需關(guān)心依賴關(guān)系 ? 動態(tài)監(jiān)控服務(wù)狀態(tài)監(jiān)控報告,人為控制服務(wù)狀態(tài)
SOA 服務(wù)治理架構(gòu)的缺點:? 服務(wù)間依然會有依賴關(guān)系,一旦某個環(huán)節(jié)出錯會影響較大(容錯機制) ? 服務(wù)關(guān)系復(fù)雜,運維、測試部署困難,不符合開發(fā)-運維一站式維護的思想
微服務(wù)
前面說的 SOA,英文翻譯過來是面向服務(wù)。
微服務(wù),似乎也是服務(wù),都是對系統(tǒng)進行 拆分。因此兩者非常容易混淆,但其實缺有一些差別: 微服務(wù)的特點:
? 單一職責:微服務(wù)中每一個服務(wù)都對應(yīng)唯一的業(yè)務(wù)能力,做到單一職責.
? 微:微服務(wù)的服務(wù)拆分粒度很小,例如一個用戶管理就可以作為一個服務(wù)。每個服 務(wù)雖小,但“五臟俱全”。
? 面向服務(wù):面向服務(wù)是說每個服務(wù)都要對外暴露 Rest 風格服務(wù)接口 API。并不關(guān)心 服務(wù)的技術(shù)實現(xiàn),做到與平臺和語言無關(guān),也不限定用什么技術(shù)實現(xiàn),只要提供 Rest 的接口即可。
? 自治:自治是說服務(wù)間互相獨立,互不干擾 ? 團隊獨立:每個服務(wù)都是一個獨立的開發(fā)團隊,人數(shù)不能過多。
? 技術(shù)獨立:因為是面向服務(wù),提供 Rest 接口,使用什么技術(shù)沒有別人干涉
? 前后端分離:采用前后端分離開發(fā),提供統(tǒng)一 Rest 接口,后端不用再為 PC、 移動段開發(fā)不同接口
? 數(shù)據(jù)庫分離:每個服務(wù)都使用自己的數(shù)據(jù)源
? 部署獨立,服務(wù)間雖然有調(diào)用,但要做到服務(wù)重啟不影響其它服務(wù)。有利于持 續(xù)集成和持續(xù)交付。每個服務(wù)都是獨立的組件,可復(fù)用,可替換,降低耦合, 易維護. 基于 docker 容器是開發(fā).
SpringCloud 是什么?(了解)
SpringCloud 是一系列框架的集合,集成 SpringBoot,提供很多優(yōu)秀服務(wù):服務(wù)發(fā)現(xiàn) 和注冊,統(tǒng)一配置中心, 負載均衡,網(wǎng)關(guān), 熔斷器等的一個微服務(wù)治理框架.
SpringCloud 的優(yōu)勢?(了解) ?
因為 SpringCloud 源于 Spring,所以它的質(zhì)量,穩(wěn)定性,持續(xù)性都是可以保證的。 ? SpringCloiud 天熱支持 SpringBoot 框架,就可以提高開發(fā)效率,能夠?qū)崿F(xiàn)需求。 ? SpringCloud 更新很快,后期支持很給力。 ? SpringCloud 可以用來開發(fā)微服務(wù)。