摘要:如果極限情況下,每個(gè)函數(shù)都是一個(gè)獨(dú)立運(yùn)行的服務(wù),如此一來(lái)反倒是增加系統(tǒng)的復(fù)雜度。
有人說(shuō):使用多個(gè)獨(dú)立的微服務(wù)組合成一個(gè)復(fù)雜的業(yè)務(wù)系統(tǒng)。如此的話,業(yè)務(wù)系統(tǒng)整體的復(fù)雜度并沒(méi)有降低。如果極限情況下,每個(gè)public函數(shù)都是一個(gè)獨(dú)立運(yùn)行的服務(wù),如此一來(lái)反倒是增加系統(tǒng)的復(fù)雜度。如此看來(lái),微服務(wù)只不過(guò)是解決了部分功能的擴(kuò)展性的問(wèn)題。和SOA架構(gòu)或者monolic相比,并沒(méi)有根本性的改變。
事實(shí)并非如此。
分布式意味著復(fù)雜性的挑戰(zhàn),以靜止的觀點(diǎn)來(lái)看,也就是系統(tǒng)長(zhǎng)期沒(méi)什么大變化這種情況,采用微服務(wù)架構(gòu)通常會(huì)增加系統(tǒng)整體的復(fù)雜度,得不償失。
然而有個(gè)詞叫做“架構(gòu)腐化”,系統(tǒng)不可能靜止不動(dòng),隨著業(yè)務(wù)的成長(zhǎng),市場(chǎng)的變化,系統(tǒng)總要不斷增加新的能力,時(shí)間長(zhǎng)了,最初簡(jiǎn)單高效的架構(gòu),往往就會(huì)變得極其復(fù)雜,臃腫不堪,即便最初的規(guī)范、分層都合理了,可擴(kuò)展性、可用性、性能帶來(lái)的復(fù)雜性也是難以避免的,祖?zhèn)鞔a牽一發(fā)而動(dòng)全身,改一行修半年該有多可怕。這也是熵增原理的一種體現(xiàn)。
而采用微服務(wù)架構(gòu),邊界和職責(zé)明確了,模塊高內(nèi)聚低耦合,系統(tǒng)熵增就可以變慢,而且系統(tǒng)分拆之后,對(duì)于負(fù)責(zé)單個(gè)微服務(wù)的小團(tuán)隊(duì)來(lái)說(shuō),工作也變得很簡(jiǎn)單多了。這都是強(qiáng)調(diào)服務(wù)總線(ESB)的 SOA 和單體架構(gòu)所不能的。
誠(chéng)然微服務(wù)架構(gòu)的正常運(yùn)轉(zhuǎn)需要做很多事情,比如:
服務(wù)注冊(cè)/發(fā)現(xiàn):服務(wù)實(shí)例的網(wǎng)絡(luò)地址是動(dòng)態(tài)分配的,服務(wù)實(shí)例的配置也經(jīng)常變化,沒(méi)有這個(gè)就不好玩了。
持續(xù)部署:功能越多,構(gòu)建和部署時(shí)間越多,再小的修改都需要部署,要是手動(dòng)部署的話,這人生就看到頭了。
異常定位與修復(fù):服務(wù)眾多鏈路復(fù)雜的時(shí)候,這和在茫茫人海中找到那個(gè)他/她有一拼了。
高可用:服務(wù)之間確實(shí)相對(duì)獨(dú)立,資源也隔離,減少局部故障對(duì)整體的影響,但是有調(diào)用和依賴,不做好每一個(gè)服務(wù)的高可用,就要等著雪崩了。
但這些是基礎(chǔ)設(shè)施層面的工作,只要有一個(gè)好的微服務(wù)基礎(chǔ)設(shè)施,業(yè)務(wù)侵入性很小,盡可能支持自動(dòng)化,就不是問(wèn)題了。網(wǎng)易云輕舟微服務(wù)的設(shè)計(jì),就是希望解決微服務(wù)應(yīng)用生命周期的一切問(wèn)題。
所以,微服務(wù)架構(gòu)也不僅僅解決部分功能擴(kuò)展性的問(wèn)題,對(duì)于系統(tǒng)可用性的保證,溝通成本的減少,支持技術(shù)選擇的多樣性,到研發(fā)效率的提升,微服務(wù)可以發(fā)揮的作用還是非常巨大的。
優(yōu)化業(yè)務(wù)系統(tǒng)的復(fù)雜度,應(yīng)該在于保證業(yè)務(wù)響應(yīng)能力、業(yè)務(wù)創(chuàng)新能力,同時(shí)提升 IT 效率,很多互聯(lián)網(wǎng)公司以及傳統(tǒng)企業(yè)都在搞微服務(wù),當(dāng)然是因?yàn)楦阄⒎?wù)是有這種好處的。
文章來(lái)源: 網(wǎng)易云社區(qū)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/25406.html
摘要:微服務(wù)架構(gòu)概述應(yīng)用架構(gòu)的發(fā)展應(yīng)用是可獨(dú)立運(yùn)行的程序代碼,提供相對(duì)完善的業(yè)務(wù)功能。阿里開(kāi)源的是的典型實(shí)現(xiàn)。它目前由官方開(kāi)發(fā)維護(hù),基于開(kāi)發(fā),提供一套完整的微服務(wù)解決方案。 微服務(wù)與Spring Cloud 隨著互聯(lián)網(wǎng)的快速發(fā)展, 云計(jì)算近十年也得到蓬勃發(fā)展, 企業(yè)的IT環(huán)境和IT架構(gòu)也逐漸在發(fā)生變革,從過(guò)去的單體應(yīng)用架構(gòu)發(fā)展為至今廣泛流行的微服務(wù)架構(gòu)。 微服務(wù)是一種架構(gòu)風(fēng)格, 能給軟件應(yīng)用...
摘要:如何快速搭建一個(gè)微服務(wù)架構(gòu)上圖異步通信方式通常異步的生產(chǎn)者消費(fèi)者模式,通過(guò)等異步消息通訊協(xié)議規(guī)范。數(shù)據(jù)的去中心化,進(jìn)一步降低了微服務(wù)之間的耦合度,不同服務(wù)可以采用不同的數(shù)據(jù)庫(kù)技術(shù)等。 什么是微服務(wù)? 微服務(wù)(Microservices Architecture)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服...
摘要:數(shù)據(jù)的去中心化,進(jìn)一步降低了微服務(wù)之間的耦合度,不同服務(wù)可以采用不同的數(shù)據(jù)庫(kù)技術(shù)等。微服務(wù)架構(gòu)是持續(xù)交付的巨大推動(dòng)力,允許在頻繁發(fā)布不同服務(wù)的同時(shí)保持系統(tǒng)其他部分的可用性和穩(wěn)定性。 什么是微服務(wù)? 微服務(wù)(Microservices Architecture)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)...
摘要:微服務(wù)集成服務(wù)間通信微服務(wù)架構(gòu)下,應(yīng)用的服務(wù)直接相互獨(dú)立。微服務(wù)架構(gòu)傾向于降低中心消息總線類似于的依賴,將業(yè)務(wù)邏輯分布在每個(gè)具體的服務(wù)終端。 引言:微服務(wù)是當(dāng)前軟件架構(gòu)領(lǐng)域非常熱門的詞匯,能找到很多關(guān)于微服務(wù)的定義、準(zhǔn)則,以及如何從微服務(wù)中獲益的文章,在企業(yè)的實(shí)踐中去應(yīng)用微服務(wù)的資源卻很少。本篇文章中,會(huì)介紹微服務(wù)架構(gòu)(Microservices Architecture)的基礎(chǔ)概念,...
摘要:微服務(wù)集成服務(wù)間通信微服務(wù)架構(gòu)下,應(yīng)用的服務(wù)直接相互獨(dú)立。微服務(wù)架構(gòu)傾向于降低中心消息總線類似于的依賴,將業(yè)務(wù)邏輯分布在每個(gè)具體的服務(wù)終端。 引言:微服務(wù)是當(dāng)前軟件架構(gòu)領(lǐng)域非常熱門的詞匯,能找到很多關(guān)于微服務(wù)的定義、準(zhǔn)則,以及如何從微服務(wù)中獲益的文章,在企業(yè)的實(shí)踐中去應(yīng)用微服務(wù)的資源卻很少。本篇文章中,會(huì)介紹微服務(wù)架構(gòu)(Microservices Architecture)的基礎(chǔ)概念,...
閱讀 2270·2023-04-25 14:56
閱讀 2761·2021-11-16 11:44
閱讀 2803·2021-09-22 15:00
閱讀 1964·2019-08-29 16:55
閱讀 2244·2019-08-29 14:04
閱讀 2394·2019-08-29 11:23
閱讀 3743·2019-08-26 10:46
閱讀 1975·2019-08-22 18:43