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

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


由于這里面有大量的橫向集成和協(xié)同點(diǎn),因此導(dǎo)致的就是微服務(wù)模塊間的橫向集成異常復(fù)雜,遠(yuǎn)超很多互聯(lián)網(wǎng)應(yīng)用,這是實(shí)際你會面臨的問題 。微服務(wù)模塊拆分后,各微服務(wù)間集成復(fù)雜度指數(shù)級增加只談微服務(wù)架構(gòu)的松耦合和高擴(kuò)展性,而不談開發(fā)和集成復(fù)雜度的都是耍流氓 。實(shí)際上當(dāng)前很多企業(yè)對微服務(wù)架構(gòu)并沒有如此迫切,互聯(lián)網(wǎng)很多企業(yè)推行微服務(wù)架構(gòu)更多的還是考慮到巨大的業(yè)務(wù)并發(fā)量下的系統(tǒng)彈性擴(kuò)展能力,而實(shí)際大多數(shù)企業(yè)內(nèi)應(yīng)用往往并沒有如此海量并發(fā) 。
其次,即使在并發(fā)量增加的情況下通過進(jìn)行代碼本身的優(yōu)化,數(shù)據(jù)庫調(diào)優(yōu)或者升級硬件服務(wù)器資源都可以較好的解決性能問題 。而做這些事情投入的成本遠(yuǎn)遠(yuǎn)小于微服務(wù)架構(gòu)帶來的開發(fā)復(fù)雜度增加成本,后期的運(yùn)維管控成本 。要做到完全微服務(wù)模塊獨(dú)立,微服務(wù)架構(gòu)下最大的一個(gè)變化就是數(shù)據(jù)庫也拆分開了,原來的一個(gè)業(yè)務(wù)系統(tǒng)如果分為5個(gè)微服務(wù)模塊,那理論上就是5個(gè)獨(dú)立的后臺數(shù)據(jù)庫,而且數(shù)據(jù)庫間還不能隨便相互連接和訪問 。
只有這樣微服務(wù)模塊才能做到獨(dú)立部署和管理 。由于數(shù)據(jù)庫拆分帶來兩個(gè)問題,其一是我們原來很簡單的一個(gè)跨表查詢操作現(xiàn)在無法做了,我們必須調(diào)用兩個(gè)微服務(wù)模塊提供的服務(wù),查詢到數(shù)據(jù)后再到邏輯層進(jìn)行組合 。其次最大的問題就是如果一個(gè)業(yè)務(wù)操作需要同時(shí)更新兩個(gè)微服務(wù)模塊的數(shù)據(jù),由于服務(wù)本身無狀態(tài),導(dǎo)致了這種分布式事務(wù)問題很難解決 。
企業(yè)內(nèi)業(yè)務(wù)系統(tǒng)很大一個(gè)特點(diǎn)就是業(yè)務(wù)邏輯和規(guī)則相對互聯(lián)網(wǎng)更加復(fù)雜,而且有更高的事務(wù)一致性要求 。正是由于這個(gè)原因,無法解決好分布式事務(wù)的問題都將直接導(dǎo)致后續(xù)數(shù)據(jù)不一致和業(yè)務(wù)錯(cuò)誤 。原來通過調(diào)用項(xiàng)目內(nèi)一個(gè)API方法就能解決的問題,現(xiàn)在要調(diào)用遠(yuǎn)程WS接口才能解決,這本身就增加了開發(fā)和調(diào)試的復(fù)雜度 。一個(gè)微服務(wù)模塊與外部其它模塊的集成和協(xié)同越少,你會發(fā)現(xiàn)該微服務(wù)模塊和傳統(tǒng)業(yè)務(wù)系統(tǒng)開發(fā)沒太大區(qū)別,但是當(dāng)其涉及到完成任何一個(gè)功能都需要調(diào)用外部微服務(wù)模塊的服務(wù)接口時(shí)候,其開發(fā)模式和效率上就會帶來巨大的變化 。
微服務(wù)架構(gòu)下運(yùn)維難度增加在實(shí)施了微服務(wù)架構(gòu)后,運(yùn)維的復(fù)雜度也是成倍增加,任何一個(gè)微服務(wù)模塊出問題都可能影響到整個(gè)業(yè)務(wù)應(yīng)用的功能使用 。我們在運(yùn)維時(shí)候不僅僅要健康單個(gè)微服務(wù)模塊,還需要健康所有的接口服務(wù)監(jiān)控狀態(tài) 。如果跟Docker集成了,我們看到整個(gè)性能監(jiān)控和問題分析都會變麻煩了,沒有實(shí)施微服務(wù)架構(gòu)前發(fā)現(xiàn)問題,我們直接可以看應(yīng)用服務(wù)器上類似tomcat或jboss日志,而實(shí)施了微服務(wù)架構(gòu)后,應(yīng)用容器已經(jīng)是自動部署和動態(tài)分配的,原有的故障診斷模式行不通,而需要PaaS平臺本身提供完整的預(yù)警和日志分析能力 。
再次,如果發(fā)現(xiàn)了性能問題或故障,我們的解決方案是如何的?我們?nèi)绾伪WC不影響到業(yè)務(wù)運(yùn)行,不出現(xiàn)數(shù)據(jù)的丟失,或者在微服務(wù)模塊擴(kuò)展的時(shí)候不出現(xiàn)業(yè)務(wù)中斷等 。這些已經(jīng)不是簡單的部署架構(gòu)層面的冗余能解決的問題,而涉及到我們在整個(gè)微服務(wù)架構(gòu)中的消息策略,事務(wù)管理機(jī)制,持久化機(jī)制等問題 。引入微服務(wù)后的實(shí)施難度增加一個(gè)企業(yè)所涉及到的IT開發(fā)和架構(gòu)能力以及企業(yè)本身的IT治理管控成熟度都將直接影響到微服務(wù)架構(gòu)能否實(shí)施成功,要知道引入微服務(wù)架構(gòu)后集成和后續(xù)運(yùn)維等的復(fù)雜度都會成指數(shù)級增長 。
方式1:引入的外部開發(fā)商進(jìn)行微服務(wù)架構(gòu)化如果一個(gè)企業(yè)本身IT部門規(guī)模小,軟件以外購為主,那么勢必在對ERP等各類軟件的選型評估后引入不同的軟件產(chǎn)品提供商或軟件開發(fā)商 。那么軟件商本身都有了成熟的產(chǎn)品或架構(gòu),其產(chǎn)品內(nèi)部的模塊是否符合組件化和微服務(wù)架構(gòu)的要求,我們不得而知 。即使招標(biāo)要求寫明軟件提供商提供產(chǎn)品需要基于SOA或微服務(wù)參考架構(gòu),但是實(shí)際上由于企業(yè)本身的IT能力和水平往往也無法驗(yàn)證,而對于軟件廠商來說一定希望是賣現(xiàn)有產(chǎn)品,減少改造和定制實(shí)現(xiàn)利潤的最大化 。

推薦閱讀