微服務你還不懂嗎?一文告訴你與傳統分佈式差別

分佈式架構是分佈式計算技術的應用和工具,目前成熟的技術包括J2EE, CORBA和.NET(DCOM),這些技術牽扯的內容非常廣,相關的書籍也非常多,也沒有涉及這些技術的細節,只是從各種分佈式系統平臺產生的背景和在軟件開發中應用的情況來探討它們的主要異同。


微服務你還不懂嗎?一文告訴你與傳統分佈式差別

微服務架構是一項在雲中部署應用和服務的新技術。大部分圍繞微服務的爭論都集中在容器或其他技術是否能很好的實施微服務,而紅帽說API應該是重點。


微服務你還不懂嗎?一文告訴你與傳統分佈式差別

微服務可以在“自己的程序”中運行,並通過“輕量級設備與HTTP型API進行溝通”。關鍵在於該服務可以在自己的程序中運行。通過這一點我們就可以將服務公開與微服務架構(在現有系統中分佈一個API)區分開來。在服務公開中,許多服務都可以被內部獨立進程所限制。如果其中任何一個服務需要增加某種功能,那麼就必須縮小進程範圍。在微服務架構中,只需要在特定的某種服務中增加所需功能,而不影響整體進程的架構。

從概念理解,分佈式服務架構強調的是服務化以及服務的分散化,微服務則更強調服務的專業化和精細分工;從實踐的角度來看,微服務架構通常是分佈式服務架構,反之則未必成立。所以,選擇微服務通常意味著需要解決分佈式架構的各種難題。

區別分佈式的方式是根據不同機器不同業務。

將一個大的系統劃分為多個業務模塊,業務模塊分別部署到不同的機器上,各個業務模塊之間通過接口進行數據交互。區別分佈式的方式是根據不同機器不同業務。

微服務更加強調單一職責、輕量級通信(HTTP)、獨立性並且進程隔離。

微服務與分佈式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。

分佈式是否屬於微服務?

不一定,如果一個很大應用,拆分成三個應用,但還是很龐大,雖然分佈式了,但不是微服務。。微服務核心要素是微小。。

微服務架構是分佈式服務架構的子集。

微服務架構通過更細粒度的服務切分,使得整個系統的迭代速度並行程度更高,但是運維的複雜度和性能會隨著服務的粒度更細而增加。

微服務重在解耦合,使每個模塊都獨立。分佈式重在資源共享與加快計算機計算速度。

分佈式:分散壓力。微服務:分散能力。

知識點擴展

分佈式-微服務-集群 的概念和區別

分佈式:一個業務分拆多個子業務,部署在不同的服務器上

集群:同一個業務,部署在多個服務器上

微服務的意思也就是將模塊拆分成一個獨立的服務單元通過接口來實現數據的交互。

分佈式是指將不同的業務分佈在不同的地方。而集群指的是將幾臺服務器集中在一起,實現同一業務。

分佈式中的每一個節點,都可以做集群。而集群並不一定就是分佈式的。

分佈式,從窄意上理解,也跟集群差不多,但是它的組織比較鬆散,不像集群,有一個組織性,一臺服務器垮了,其它的服務器可以頂上來。

分佈式的每一個節點,都完成不同的業務,一個節點垮了,那這個業務就不可訪問了。

好的設計應該是分佈式和集群的結合,先分佈式再集群,具體實現就是業務拆分成很多子業務,然後針對每個子業務進行集群部署,這樣每個子業務如果出了問題,整個系統完全不會受影響。

微服務的設計是為了不因為某個模塊的升級和BUG影響現有的系統業務。微服務與分佈式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。

分佈式和微服務的架構很相似,只是部署的方式不一樣而已。


微服務你還不懂嗎?一文告訴你與傳統分佈式差別


分享到:


相關文章: