日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

SOA架構(gòu)的一種變體,微服務(wù)

系統(tǒng)軟件架構(gòu)中,現(xiàn)在很流行微服務(wù),那么使用微服務(wù)就一定好么?微服務(wù)有哪些缺點(diǎn)呢?

SOA架構(gòu)的一種變體,微服務(wù)


下面簡(jiǎn)單回答下這個(gè)問題 。在回答這個(gè)問題前還是先回顧下微服務(wù)架構(gòu) 。微服務(wù)架構(gòu)概述微服務(wù)架構(gòu)本質(zhì)是單個(gè)業(yè)務(wù)系統(tǒng)徹底的組件化(前端,邏輯層,數(shù)據(jù)庫(kù))解耦,同時(shí)相互之間通過輕量的服務(wù)接口和協(xié)議進(jìn)行協(xié)同 。這和很早就談到的組件化架構(gòu)思想是一致的,實(shí)現(xiàn)微服務(wù)架構(gòu)后,你會(huì)看到?jīng)]有傳統(tǒng)業(yè)務(wù)系統(tǒng)的概念了,有的只是微服務(wù)模塊或小應(yīng)用 。
微服務(wù)架構(gòu)最近又炒的相當(dāng)活,很多人會(huì)說SOA過時(shí)了,ESB過時(shí)了,甚至還有人用微服務(wù)架構(gòu)去徹底的否定SOA和ESB,這些都是相當(dāng)危險(xiǎn)的信號(hào) 。在我12,13年寫企業(yè)私有云PaaS平臺(tái)的一系列文章的時(shí)候,已經(jīng)提出了業(yè)務(wù)能力組件化,組件服務(wù)化的微服務(wù)架構(gòu)思想,但是實(shí)際應(yīng)用實(shí)施效果并不太理想 。我們可以先看下從單體應(yīng)用到微服務(wù)架構(gòu)的變化圖 。
把這個(gè)核心搞清楚后,再來看下網(wǎng)上找到的對(duì)微服務(wù)架構(gòu)的一些定義和闡述:微服務(wù)可以在“自己的程序”中運(yùn)行,并通過“輕量級(jí)設(shè)備與HTTP型API進(jìn)行溝通” 。關(guān)鍵在于該服務(wù)可以在自己的程序中運(yùn)行 。通過這一點(diǎn)我們就可以將服務(wù)公開與微服務(wù)架構(gòu)(在現(xiàn)有系統(tǒng)中分布一個(gè)API)區(qū)分開來 。在服務(wù)公開中,許多服務(wù)都可以被內(nèi)部獨(dú)立進(jìn)程所限制 。
如果其中任何一個(gè)服務(wù)需要增加某種功能,那么就必須縮小進(jìn)程范圍 。在微服務(wù)架構(gòu)中,只需要在特定的某種服務(wù)中增加所需功能,而不影響整體進(jìn)程 。微服務(wù)不需要像普通服務(wù)那樣成為一種獨(dú)立的功能或者獨(dú)立的資源 。定義中稱,微服務(wù)是需要與業(yè)務(wù)能力相匹配,這種說法完全正確 。不幸的是,仍然意味著,如果能力模型粒度的設(shè)計(jì)是錯(cuò)誤的,那么,我們就必須付出很多代價(jià) 。
如果你閱讀了Fowler的整篇文章,你會(huì)發(fā)現(xiàn),其中的指導(dǎo)建議是非常實(shí)用的 。在決定將所有組件組合到一起時(shí),開發(fā)人員需要非常確信這些組件都會(huì)有所改變,并且規(guī)模也會(huì)發(fā)生變化 。服務(wù)粒度越粗,就越難以符合規(guī)定原則 。服務(wù)粒度越細(xì),就越能夠靈活地降低變化和負(fù)載所帶來的影響 。然而,利弊之間的權(quán)衡過程是非常復(fù)雜的,我們要在配置和資金模型的基礎(chǔ)上考慮到基礎(chǔ)設(shè)施的成本問題 。
在了解了微服務(wù)架構(gòu)后,我們來分析下微服務(wù)架構(gòu)又哪些缺點(diǎn)和難點(diǎn) 。微服務(wù)模塊拆分后,各微服務(wù)間集成復(fù)雜度指數(shù)級(jí)增加簡(jiǎn)單舉例來說,一個(gè)企業(yè)已經(jīng)實(shí)施了5個(gè)業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)之間有10個(gè)接口 。如果全部微服務(wù)化則可能設(shè)計(jì)到50個(gè)微服務(wù)模塊,上100個(gè)接口和集成點(diǎn) ??上攵趶氐讓?shí)施微服務(wù)后,我們前期架構(gòu)設(shè)計(jì),后期集成和管控的復(fù)雜度增加10倍以上 。
這種集成難度會(huì)遠(yuǎn)超大多數(shù)人想象,如果拿真實(shí)做的項(xiàng)目來說,如果談業(yè)務(wù)系統(tǒng)只有3個(gè),而到微服務(wù)模塊級(jí)別則有接近60個(gè),而實(shí)際涉及到的集成接口上1000個(gè) 。我們做任何一個(gè)復(fù)雜端到端業(yè)務(wù)的聯(lián)調(diào)基本就需要花2,3周甚至更長(zhǎng)的時(shí)間 。互聯(lián)網(wǎng)企業(yè)為何適合做微服務(wù)架構(gòu),其重要的一個(gè)原因就是互聯(lián)網(wǎng)企業(yè)如電商平臺(tái),在進(jìn)行了微服務(wù)化后各個(gè)模塊之間耦合性很低,并不會(huì)有太多的集成和協(xié)同點(diǎn) 。
或者簡(jiǎn)單來說,各個(gè)微服務(wù)模塊更多的是向上面的PC端或APP端提供服務(wù)能力,而模塊橫向間接口協(xié)同很少 。正是在這種低耦合情況下,協(xié)同和集成相對(duì)來說容易 。而轉(zhuǎn)回到企業(yè)內(nèi)部你會(huì)發(fā)現(xiàn),在微服務(wù)模塊化后,各個(gè)模塊之間的集成點(diǎn)相當(dāng)多,特別是業(yè)務(wù)系統(tǒng)拆分到模塊或組件這一個(gè)級(jí)別后,很多原有內(nèi)部的集成和依賴點(diǎn)全部暴露出來了,你都需要去很好的管理 。

推薦閱讀