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