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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

什么是微服务_微服务系列笔记:什么是微服务?

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是微服务_微服务系列笔记:什么是微服务? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者 | 莫無崖

導語

微服務(Microservice Architecture)是近幾年流行的一種架構思想,它的概念沒有很明確的指出。ThoughtWorks 公司的首席科學家 Martin Fowler曾經解釋過這個概念: 微服務架構風格是一種將單個應用程序作為一套小型服務開發的方法,每種應用程序都在自己的進程中運行,并與輕量級機制(通常是HTTP資源API)進行通信。這些服務是圍繞業務功能構建的,可以通過全自動部署機制獨立部署。這些服務的集中管理最少,可以用不同的編程語言編寫,并使用不同的數據存儲技術。(By 谷歌翻譯)

架構演進

為了更好的了解什么是微服務,我們先來看看架構演進的過程

1、單體架構:對于早期的互聯網,由于處于萌芽時期,用戶量少,因此也就表示互聯網的需求還不多,也就導致互聯網產品并發量低,往往只需要一臺服務器便可以滿足用戶?,F在這種模式已經完全淘汰,原因也很簡單,隨著互聯網的發展,一臺服務器已經無法滿足日益增長的用戶,這種模式下,一旦服務出現了問題,往往需要進行停機才能進行修復,已經無法滿足用戶體驗。

2、垂直架構:這種架構是在單體架構的基礎上,以項目為單位進行劃分,將一個大項目拆分成一個單體項目,這種架構雖然一定程度上使開發變得容易,被劃分的項目不至于無限擴大,但是也帶來了諸多問題,如果項目比較大,這些被劃分的項目因為全部都集中在一個工程中,項目與項目之間會出現數據冗余,后期擴展成本高,不易維護。而且往往一個服務沒有很好的公用性。

3、SOA架構:這種架構是對垂直架構的優化,它將重復公用的功能抽取成工具,提高了系統的重用性,服務之間通過注冊中心進行通信,但是由于服務的界限往往不明確,導致系統與服務之間的耦合性增加,往往一個服務的宕機,會牽涉到其它服務。

微服務

微服務便是對SOA架構的進一步優化,實現服務之間的松耦合,微服務架構通過對業務進行劃分實現服務的組件化,并且可以獨立部署,實現獨立測試,使開發人員開發一個服務只專注于該服務。一句話來說微服務就是一些可以協同工作并且擁有自治功能的服務。下面我們來做更多的解釋為微服務的概念。

微服務很小

微服務根據業務的邊界進行劃分,這樣做的好處使它只專于業務邊界之內的開發,那可能有人會疑問,劃分到什么程度才能算小呢?有沒有一個標椎?嚴格來說很難有人能說清,如果你在開發的時候認為某個服務似乎代碼庫有點大了,維護起來有點麻煩,這個時候或許就該考慮再一次進行劃分了,如果你的服務,交給另一個開發人員進行維護時,他可以在一兩天之內讀懂你的服務,或許這就是一個好的服務了。同時隨著微服務劃分的越來越小,它的獨立性會越來越好,但是對于眾多服務的管理也會變得復雜,這是微服務的一個痛點,但是不要擔心,如今有很好的的技術可以對這些一個一個的服務進行了管理。

自治性

一個微服務就是一個獨立的個體,并且可以獨立運行,服務之間通過網絡進行通信。這里的自治性,并不僅僅指服務可以自己獨立測試,更重要的是服務與服務之間如何更好的降低耦合性,如果你服務在進行修改的同時,會引起另一個服務發生了不好的改變,可以說,這就不是一個好的服務,另外,對于一個服務來說,應該懂得提供的什么接口是可以通過API進行暴露,又有哪些是應該隱藏的,來提高我們服務的安全性。

隔離性

微服務由于進行了業務劃分的隔離,服務之間通過組合的方式構建項目,通信的方式通過網絡調用,使得服務往往只需要對外暴露提供的API接口,對于調用的一方來說,不需要知道被調用的服務使用了什么技術,這樣以來,我們的微服務可以用不同的語言進行開發,你可以讓一個風險小最小的服務采用新技術,這樣出現了問題也可以很好的處理。因此微服務也實現了技術的異構性,但是需要明白的是,對于一個團隊來說,最好統一語言,這樣會減少前期的溝通成本。

擴展性

對于單塊服務來說,擴展服務,往往需要對整個服務進行擴展,但是微服務不同,對于較多的且很小的微服務,只需要對需要擴展的模塊擴展就可以了,因為服務之間相互獨立,幾乎不會影響到其它服務。最重要的是,我們可以把很多不同的服務,同時部署在很多的機器上,一臺機器無法工作時,將有其它可工作的機器代替。

迭代周期短

微服務每一個都可以獨立部署,對于開發人員來講,只負責幾個微服務時,升級更加快,對于如今互聯網的迅速發展迭代過程,很明顯微服務的部署速度順應了互聯網的潮流。

總結

以上是生活随笔為你收集整理的什么是微服务_微服务系列笔记:什么是微服务?的全部內容,希望文章能夠幫你解決所遇到的問題。

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