日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分布式和微服务是什么?二者的区别又是什么?

發布時間:2025/3/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式和微服务是什么?二者的区别又是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、分布式系統

在《分布式系統原理與范型》一書中有如下定義:

分布式系統是若干獨立計算機的集合,這些計算機對于用戶來說就像單個相關系統”;

分布式系統是由一組通過網絡進行通信、為了完成共同的任務而協調工作的計算機節點組成的系統。分布式系統的出現是為了用廉價的、普通的機器完成單個計算機無法完成的計算、存儲任務。其目的是利用更多的機器,處理更多的數據

分布式系統(distributed system)是建立在網絡之上的軟件系統。

首先需要明確的是,只有當單個節點的處理能力無法滿足日益增長的計算、存儲任務的時候,且硬件的提升(加內存、加磁盤、使用更好的CPU)高昂到得不償失的時候,應用程序也不能進一步優化的時候,我們才需要考慮分布式系統。因為,分布式系統要解決的問題本身就是和單機系統一樣的,而由于分布式系統多節點、通過網絡通信的拓撲結構,會引入很多單機系統沒有的問題,為了解決這些問題又會引入更多的機制、協議,帶來更多的問題。

因此,隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,急需一個治理系統確保架構有條不紊的演進。

Dubbo由此誕生。


二、微服務架構

任何技術的演進都是有跡可循的,任何新技術的出現都是為了解決原有技術無法解決的需求,所以,微服務的出現就是因為原來單體應用架構已經無法滿足當前互聯網產品的技術需求。微服務的設計就是為了不因為某個模塊的升級和BUG影響現有的系統業務。

微服務架構,核心就是為了解決應用微服務化之后的服務治理問題。

在微服務架構之前還有一個概念:SOA(Service-Oriented Architecture)-面向服務的體系架構。

微服務的特征:

  • 單一職責的。一個微服務應該都是單一職責的,這才是“微”的體現,一個微服務解決一個業務問題(注意是一個業務問題而不是一個接口)。
  • 面向服務的。將自己的業務能力封裝并對外提供服務,這是繼承SOA的核心思想,一個微服務本身也可能使用到其它微服務的能力。

滿足以上兩點就可以認為是典型的微服務。

應用微服務化之后,會出現一些問題:

  • 服務發現問題。一個微服務如何發現其他微服務呢?最簡單的方式就是每個微服務里面配置其他微服務的地址,但是當微服務數量眾多的時候,這樣做明顯不現實。所以需要使用到微服務架構中的一個最重要的組件:服務注冊中心,所有服務都注冊到服務注冊中心,同時也可以從服務注冊中心獲取當前可用的服務清單。
  • 服務配置管理的問題。當服務數量超過一定程度之后,如果需要在每個服務里面分別維護每一個服務的配置文件,運維人員估計要哭了。那么,就需要用到微服務架構里面第二個重要的組件:配置中心
  • 以上應用內部的服務治理,當客戶端或外部應用調用服務的時候怎么處理呢?服務A可能有多個節點,服務A、服務B和服務C的服務地址都不同,服務授權驗證在哪里做?這時,就需要使用到服務網關提供統一的服務入口,最終形成典型微服務架構:

這便是一個典型的微服務架構,當然微服務的服務治理還涉及很多內容,比如:

  • 通過熔斷、限流等機制保證高可用;
  • 微服務之間調用的負載均衡;
  • 分布式事務(2PC、3PC、TCC、LCN等);
  • 服務調用鏈跟蹤等等。

目前國內企業使用的微服務框架主要是Spring Cloud和Dubbo(或者DubboX),但是Dubbo那兩年的停更嚴重打擊了開發人員對它的信心,Spring Cloud已經逐漸成為主流


三、分布式和微服務的區別

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

分布式服務架構與微服務架構概念的區別與聯系:

  • 分布式:分散壓力。
    • 不同模塊部署在不同服務器上;
    • 作用:分布式解決網站高并發帶來問題;
    • 集群:相同的服務;
    • 多臺服務器部署相同應用構成一個集群;
    • 作用:通過負載均衡設備共同對外提供服務;
    • SOA[組裝服務/ESB企業服務總線];
    • 業務系統分解為多個組件,讓每個組件都獨立提供離散,自治,可復用的服務能力;
    • 通過服務的組合和編排來實現上層的業務流程;
    • 作用:簡化維護,降低整體風險,伸縮靈活;
  • 微服務:分散能力。
    • 微服務[找到服務/微服務網關open API];
    • 架構設計概念:各服務間隔離(分布式也是隔離),自治(分布式依賴整體組合),其它特性(單一職責,邊界,異步通信,獨立部署)
    • 是分布式概念更加嚴格的執行;
    • SOA到微服務架構的演進過程;
    • 作用:各服務可獨立應用,組合服務也可系統應用(巨石應用[monolith]的簡化實現策略-平臺思想).

明確一個問題:分布式是否屬于微服務?

答案是屬于。微服務的意思也就是將模塊拆分成一個獨立的服務單元通過接口來實現數據的交互。但是微服務不一定是分布式,因為微服務的應用不一定是分散在多個服務器上,他也可以是同一個服務器。這也是分布式和微服務的一個細微差別。

總結

以上是生活随笔為你收集整理的分布式和微服务是什么?二者的区别又是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。