關于分布式和微服務怎么理解?

      網友投稿 862 2022-05-29

      寫在前面

      一直對微服務和分布式這兩個概念模凌兩可,不是太清晰,而且接觸的項目也沒這么大體量,沒有用到過,所以蹭現在有時間總結一下,總結很大部分來源于《從Paxos到Zookper分布式一致性原理與實踐》和《微服務架構設計模式》這兩本書里。

      嗯,關于分布式系統和微服務架構的一些拙見,因為大家一直放到一起講,所以總結一波。

      博文中理解有所欠缺的小伙伴請留言,多多指教。

      拿著爸媽提供的物質,見識他們沒有見識過的世面,體驗他們沒有體驗過的人生,到頭來,卻嫌棄他們如此笨拙。

      名詞解釋

      分布式系統

      個人覺得分布式系統面向的是Dev,更多的是考慮系統性能和部署環境之間的問題,通過分布式解決在沒有大型主機的部署環境情況下,系統性能的高可用和吞吐量,是個一個很早就提出來的一個概念,是由集中式系統過渡來的,隨著計算機系統向網絡化和微型化的發展日趨明顯,同時業務的發展,傳統的集中式處理模式越來越不能適應人們的需求,學習成本高,大型主機貴、容錯性差,擴容困難。

      為了解決業務快速發展給IT系統帶來的巨大挑戰,從2009年開始,阿里集團啟動了去IOE計劃,其電商系統開始正式邁入分布式系統時代。

      在《分布式系統概念與設計》生一書中,對分布式系統做了如下定義:

      分布式系統是一個硬件或軟件組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統。

      (

      硬件或軟件組件

      ,個人理解 ,硬件組件分布我們可以結合HarmonyOS理解,音畫同步,應用跨設備流轉,軟總線等硬件抽象的分布式,或者可以結合RAID(獨立冗余磁盤陣列)理解,可以理解為以機器為粒度的磁盤陣列,軟件組件分布這里結合我們常說的微服務分布式部署,類比java Web分布式系統。)

      關于分布式和微服務怎么理解?

      微服務架構

      微服務 (Microservices) 是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊 (Small Building Blocks) 為基礎,利用模組化的方式組合出復雜的大型應用程式,各功能區塊使用與語言無關 (Language-Independent/Language agnostic) 的API 集相互通訊。 微服務的起源是由 Peter Rodgers博士于 2005 年度云端運算博覽會提出的微 Web 服務 (Micro-Web-Service) 開始,Juval L?wy則是與他有類似的前導想法,將類別變成細粒服務 (granular services),以作為 Microsoft 下一階段的軟體架構,其核心想法是讓服務是由類似Unix 管道的存取方式使用,而且復雜的服務背后是使用簡單 URI 來開放介面,任何服務,任何細粒都能被開放 (exposed)。這個設計在 HP的實驗室被實現,具有改變復雜軟體系統的強大力量。 2014年,Martin Fowler與James Lewis共同提出了微服務的概念,定義了微服務是由以單一應用程式構成的小服務,自己擁有自己的行程與輕量化處理,服務依業務功能設計,以全自動的方式部署,與其他服務使用HTTP API 通訊。同時服務會使用最小的規模的集中管理 (例如 Docker) 能力,服務可以用不同的程序語言與資料庫等元件協作。

      個人覺得微服務架構更多的是面向ops,更多的是考慮編碼和項目業務之間的問題,根據功能把應用拆分為服務。解決的是開發問題和應用復雜性,是在對于業務的快速發展中單體應用不能滿足需要的時候,提出來的一個概念,《微服務架構設計模式》一書中對微服務架構做如下定義:

      把應用程序功能性分解為一組服務的架構風格。

      (很直白的一句話,不需要多解釋,對于大型系統而言,模塊化是必不可少的,相信小伙伴也做過類似的項目,微服務架可以看做是模塊化的一種形式)

      從應用程序的擴展角度考慮

      微服務和分布式都是對大型應用程序的擴展,只是擴展方向不同:

      分布式系統更多是偏水平擴展,在dev方面的解決辦法,利用部署系統環境的空間分布性,比如SOA架構中利用分布式集成大型、復雜的單體應用程序;比如對實例進行克隆,以副本的形式對應用的數據和服務提供一種冗余方式(數據副本和服務副本),從而對外提供高可用,高并發的服務。分布式需要解決分布式數據一致性以及分布式環境通信異常、網絡分區等問題。比如通過Zookeeper解決分布式數據一致性的問題。分布式系統可以理解為以解決硬件層面的壓力從而對應用進行擴展。

      微服務架構更多的是垂直方向的擴展,在ops方面解決問題,利用應用程序的功能性分解,,把應用拆分為一組服務,每個服務負責特定的功能。每個服務都相對較小并容易維護,使大型的復雜應用程序可以持續交付和持續部署。服務可以獨立部署、可以獨立擴展。同時微服務架構可以實現團隊的自治。更容易實驗和采納新的技術。更好的容錯性。即服務之間松耦合,但是單個服務又是高內聚的。微服務架構可以理解為解決軟件層面的壓力對應用進行擴展。

      關于微服務架構和分布式系統之間的關系

      個人認為,不屬于包含關系,都是是對于應用擴展的不同解決辦法。一般情況下,微服務架構的應用一般為分布式系統。但分布式系統不一定是微服務架構。

      嗯,時間原因,先寫這么多,之后會查查論文啥的,在做詳細分析。

      http://www.sstir.cn/search/list?keyword=%E5%BE%AE%E6%9C%8D%E5%8A%A1

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Hadoop單機模式安裝-安裝和配置Hadoop
      下一篇:干貨 : 常用MySQL分庫分表方案
      相關文章
      97亚洲熟妇自偷自拍另类图片| 亚洲中文字幕无码亚洲成A人片| 亚洲国产成人va在线观看网址| 中文字幕亚洲一区| 亚洲一线产品二线产品| 亚洲精品一区二区三区四区乱码 | 亚洲av无码兔费综合| 亚洲一卡二卡三卡| 亚洲天堂电影在线观看| 亚洲福利电影在线观看| 亚洲日本乱码一区二区在线二产线| 亚洲综合视频在线| 2022年亚洲午夜一区二区福利| 久久精品亚洲综合一品| 亚洲视频在线观看| 亚洲美女在线观看播放| 亚洲国产精品线观看不卡 | 日本亚洲欧美色视频在线播放| 亚洲jizzjizz少妇| 亚洲色偷偷综合亚洲av78| 亚洲一卡2卡三卡4卡无卡下载| 亚洲成a人片77777群色| 亚洲精品在线免费观看| 亚洲国语在线视频手机在线| 亚洲人成精品久久久久| 国外亚洲成AV人片在线观看| 亚洲精品岛国片在线观看| 亚洲AV无码一区二区三区性色| 亚洲三级视频在线观看| 国产精品高清视亚洲一区二区 | 亚洲精品第一国产综合野| 亚洲国产高清视频| 亚洲高清在线播放| 久久久亚洲欧洲日产国码aⅴ| 久久久亚洲欧洲日产国码aⅴ | 久久亚洲欧美国产精品| 亚洲日本韩国在线| 国产精品亚洲视频| 伊人久久大香线蕉亚洲五月天| 亚洲男人的天堂www| 亚洲一区二区三区日本久久九|