微服務(wù)
維基上對其定義為:一種軟件開發(fā)技術(shù)- 面向服務(wù)的體系結(jié)構(gòu)(SOA)架構(gòu)樣式的一種變體,將應(yīng)用程序構(gòu)造為一組松散耦合的服務(wù)奋蔚。在微服務(wù)體系結(jié)構(gòu)中买乃,服務(wù)是細(xì)粒度的锈死,協(xié)議是輕量級的。
微服務(wù)(或微服務(wù)架構(gòu))是一種云原生架構(gòu)方法掸宛,其中單個應(yīng)用程序由許多松散耦合且可獨立部署的較小組件或服務(wù)組成死陆。這些服務(wù)通常
● 有自己的堆棧,包括數(shù)據(jù)庫和數(shù)據(jù)模型唧瘾;
● 通過REST API措译,事件流和消息代理的組合相互通信;
● 和它們是按業(yè)務(wù)能力組織的饰序,分隔服務(wù)的線通常稱為有界上下文领虹。
盡管有關(guān)微服務(wù)的許多討論都圍繞體系結(jié)構(gòu)定義和特征展開,但它們的價值可以通過相當(dāng)簡單的業(yè)務(wù)和組織收益更普遍地理解:
● 可以更輕松地更新代碼求豫。
● 團隊可以為不同的組件使用不同的堆棧塌衰。
● 組件可以彼此獨立地進行縮放,從而減少了因必須縮放整個應(yīng)用程序而產(chǎn)生的浪費和成本蝠嘉,因為單個功能可能面臨過多的負(fù)載最疆。
分層架構(gòu)
分層架構(gòu)也叫N層架構(gòu)。是大多數(shù)Jave EE應(yīng)用的實際標(biāo)準(zhǔn)蚤告,因此很多的架構(gòu)師努酸,設(shè)計師,還有程序員都知道它罩缴。
- 網(wǎng)關(guān)層:
為業(yè)務(wù)平臺提供內(nèi)外網(wǎng)隔離蚊逢、統(tǒng)一鑒權(quán)层扶、限流、降級等烙荷,提高系統(tǒng)整體安全性穩(wěn)定性
- 網(wǎng)關(guān)域僅負(fù)責(zé)通用平臺的進出口請求業(yè)務(wù)分發(fā)镜会、協(xié)議轉(zhuǎn)換、權(quán)限控制等通用功能终抽,不提供任何實際業(yè)務(wù)代碼戳表。
- 平臺各個業(yè)務(wù)系統(tǒng)均不提供外網(wǎng)權(quán)限,外部系統(tǒng)主動請求平臺通過api網(wǎng)關(guān)轉(zhuǎn)發(fā)昼伴。
- sso服務(wù)僅提供多渠道登錄鑒權(quán)匾旭、分布式session、AccessToken驗證功能圃郊,不提供其他業(yè)務(wù)邏輯价涝。
- 業(yè)務(wù)層
基于能力層功能,完成平臺各個業(yè)務(wù)流程組織持舆,根據(jù)業(yè)務(wù)范圍做業(yè)務(wù)編排
- 業(yè)務(wù)域僅負(fù)責(zé)不同業(yè)務(wù)流程的組織色瘩,而不負(fù)責(zé)核心領(lǐng)域數(shù)據(jù)的持久化及狀態(tài)維護(例如業(yè)務(wù)域負(fù)責(zé)微信授權(quán)注冊、網(wǎng)站手機注冊2種不同流程主旨逸寓,但是實際的用戶創(chuàng)建和持久化通過調(diào)用能力層完成)
- 業(yè)務(wù)域僅負(fù)責(zé)不同業(yè)務(wù)流程的組織居兆,而不負(fù)責(zé)訪問權(quán)限、登錄會話等信息維護竹伸。(權(quán)限和會話統(tǒng)一由網(wǎng)關(guān)層統(tǒng)一維護)
- 能力層
核心業(yè)務(wù)領(lǐng)域模型泥栖、標(biāo)準(zhǔn)作業(yè)流程維護,對外輸出通用能力勋篓,一邊個性化業(yè)務(wù)流程組織
- 能力域各業(yè)務(wù)系統(tǒng)僅負(fù)責(zé)核心領(lǐng)域模型等持久化吧享、狀態(tài)流轉(zhuǎn)(例如:用戶服務(wù))
- 業(yè)務(wù)域各個系統(tǒng)通過RPC接口調(diào)用能力域的通用能力。(例如注冊)
- 數(shù)據(jù)域
各個業(yè)務(wù)板塊涉及的數(shù)據(jù)保存生巡、緩存耙蔑、等功能架構(gòu)
- 數(shù)據(jù)域統(tǒng)一由運維、數(shù)倉維護孤荣,各業(yè)務(wù)系統(tǒng)不再搭建數(shù)據(jù)存儲服務(wù)甸陌。
- 各個業(yè)務(wù)系統(tǒng)根據(jù)業(yè)務(wù)需求申請?zhí)囟ㄒ?guī)模的數(shù)據(jù)存儲配額和賬號。
- 數(shù)據(jù)域暫時以購買云服務(wù)為主盐股,自主搭建為輔钱豁,以提升系統(tǒng)底層數(shù)據(jù)穩(wěn)定性。
- 運維域
平臺運維管控相關(guān)業(yè)務(wù)架構(gòu)疯汁,包括系統(tǒng)監(jiān)控牲尺、運維保障等
- 僅提供運維相關(guān)工具類服務(wù),不實際涉及業(yè)務(wù)邏輯。
注意事項
分層架構(gòu)是一個很可靠的架構(gòu)模式谤碳。它適合大多數(shù)的應(yīng)用溃卡。如果你不確定在項目中使用什么架構(gòu),分層架構(gòu)是再好不過的了蜒简。然后瘸羡,從架構(gòu)的角度上來說,選擇這個模式還要考慮很多的東西搓茬。