微服務和分布式的區(qū)別詳解
分布式架構是分布式計算技術的應用和工具,目前成熟的技術包括J2EE, CORBA和.NET(DCOM),這些技術牽扯的內容非常廣,相關的書籍也非常多,也沒有涉及這些技術的細節(jié),只是從各種分布式系統(tǒng)平臺產生的背景和在軟件開發(fā)中應用的情況來探討它們的主要異同。
微服務架構是一項在云中部署應用和服務的新技術。大部分圍繞微服務的爭論都集中在容器或其他技術是否能很好的實施微服務,而紅帽說API應該是重點。
微服務可以在“自己的程序”中運行,并通過“輕量級設備與HTTP型API進行溝通”。關鍵在于該服務可以在自己的程序中運行。通過這一點我們就可以將服務公開與微服務架構(在現有系統(tǒng)中分布一個API)區(qū)分開來。在服務公開中,許多服務都可以被內部獨立進程所限制。如果其中任何一個服務需要增加某種功能,那么就必須縮小進程范圍。在微服務架構中,只需要在特定的某種服務中增加所需功能,而不影響整體進程的架構。
從概念理解,分布式服務架構強調的是服務化以及服務的分散化,微服務則更強調服務的專業(yè)化和精細分工;從實踐的角度來看,微服務架構通常是分布式服務架構,反之則未必成立。所以,選擇微服務通常意味著需要解決分布式架構的各種難題。
區(qū)別分布式的方式是根據不同機器不同業(yè)務。
將一個大的系統(tǒng)劃分為多個業(yè)務模塊,業(yè)務模塊分別部署到不同的機器上,各個業(yè)務模塊之間通過接口進行數據交互。區(qū)別分布式的方式是根據不同機器不同業(yè)務。
微服務更加強調單一職責、輕量級通信(HTTP)、獨立性并且進程隔離。
微服務與分布式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。
分布式是否屬于微服務?
不一定,如果一個很大應用,拆分成三個應用,但還是很龐大,雖然分布式了,但不是微服務。。微服務核心要素是微小。。
微服務架構是分布式服務架構的子集。
微服務架構通過更細粒度的服務切分,使得整個系統(tǒng)的迭代速度并行程度更高,但是運維的復雜度和性能會隨著服務的粒度更細而增加。
微服務重在解耦合,使每個模塊都獨立。分布式重在資源共享與加快計算機計算速度。
分布式:分散壓力。微服務:分散能力。
知識點擴展
分布式-微服務-集群 的概念和區(qū)別
分布式:一個業(yè)務分拆多個子業(yè)務,部署在不同的服務器上
集群:同一個業(yè)務,部署在多個服務器上
微服務的意思也就是將模塊拆分成一個獨立的服務單元通過接口來實現數據的交互。
分布式是指將不同的業(yè)務分布在不同的地方。而集群指的是將幾臺服務器集中在一起,實現同一業(yè)務。
分布式中的每一個節(jié)點,都可以做集群。而集群并不一定就是分布式的。
分布式,從窄意上理解,也跟集群差不多,但是它的組織比較松散,不像集群,有一個組織性,一臺服務器垮了,其它的服務器可以頂上來。
分布式的每一個節(jié)點,都完成不同的業(yè)務,一個節(jié)點垮了,那這個業(yè)務就不可訪問了。
好的設計應該是分布式和集群的結合,先分布式再集群,具體實現就是業(yè)務拆分成很多子業(yè)務,然后針對每個子業(yè)務進行集群部署,這樣每個子業(yè)務如果出了問題,整個系統(tǒng)完全不會受影響。
微服務的設計是為了不因為某個模塊的升級和BUG影響現有的系統(tǒng)業(yè)務。微服務與分布式的細微差別是,微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。
分布式和微服的架構很相似,只是部署的方式不一樣而已。
相關文章
SpringBoot CommandLineRunner的異步任務機制使用
這篇文章主要介紹了SpringBoot CommandLineRunner的異步任務機制使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Maven發(fā)布封裝到中央倉庫時候報錯:no default secret key
這篇文章主要介紹了Maven發(fā)布封裝到中央倉庫時候報錯:no default secret key,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12Java+MySQL實現圖書管理系統(tǒng)(完整代碼)
這篇文章主要介紹了Java+MySQL實現圖書管理系統(tǒng)(完整代碼),本文給大家介紹的非常想詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Java中的SynchronousQueue阻塞隊列及使用場景解析
這篇文章主要介紹了Java中的SynchronousQueue阻塞隊列及使用場景解析,SynchronousQueue 是 Java 中的一個特殊的阻塞隊列,它的主要特點是它的容量為0,這意味著 SynchronousQueue不會存儲任何元素,需要的朋友可以參考下2023-12-12解決shiro 定時監(jiān)聽器不生效的問題 onExpiration不調用問題
這篇文章主要介紹了解決shiro 定時監(jiān)聽器不生效的問題 onExpiration不調用問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07SpringCloud使用Zookeeper作為配置中心的示例
這篇文章主要介紹了SpringCloud使用Zookeeper作為配置中心的示例,幫助大家更好的理解和學習使用SpringCloud,感興趣的朋友可以了解下2021-04-04Spring Boot中整合Spring Security并自定義驗證代碼實例
本篇文章主要介紹了Spring Boot中整合Spring Security并自定義驗證代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04