1、 微服務簡介

1.1微服務是什麼

隨着領域驅動設計、持續交付、按需虛擬化、基礎設施自動化、小型自治團隊、大型集羣系統這些實踐的流行,微服務也應運而生。它不是被髮明出來的,而是被總結出來的一種趨勢或模式。網絡

微服務,就是能夠協同工做的微型的服務,這些服務要小,且能夠自治。架構

1.2微服務的大小

微服務到底多微纔算微?有人說,若使用開發時間來計算,一個微服務應該能夠在兩週內徹底重寫。分佈式

但這只是個經驗法則,具體實施起來仍是要因地制宜。微服務通常來講足夠小便可,不宜太小。換句話說,若是你不以爲你的代碼庫過大,那麼它就算足夠小了。模塊化

1.3微服務的好處

使用微服務的好處有不少,並且這些好處遍及於不一樣的方面,具體以下:微服務

l  技術異構性:在不一樣的服務中,可使用最合適的技術棧去實現功能;測試

l  彈性強:能夠很好地處理服務不可用和功能降級;spa

l  擴展性強:使用較小的多個服務,則能夠只對須要進行擴展的服務進行擴展;設計

l  簡化部署:各個服務獨立部署,能夠更快地對特定部分進行部署,且更容易回滾;接口

l  便於管理:在小代碼庫上工做的小團隊更加高效;開發

l  可組合性:能夠組合使用微服務快速完成一個粗粒度的服務接口;

1.4微服務的不足

微服務不是銀彈,任何事情都有兩面性,在享受微服務帶來的便捷之餘,也要接收它的不足,具體以下:

l  管理成本高:微服務的相對獨立性,會帶來大量的服務管理工做;

l  網絡問題:一旦使用了微服務,網絡就是個問題,不但網絡,機器也是如此;

l  分佈式失誤:相較於傳統架構,要作更多的事情保證各個微服務的業務一致性;

1.5微服務的使用場景

隨着新功能的增長,代碼庫會越變越大。時間久了代碼庫會很是龐大,以致於想要知道該在什麼地方作修改都很困難,若在涉及到人員變更,新人接棒後更難維護。

儘管你們都想在本身的系統中作到清晰地模塊化,但事實上這些模塊,或者說業務之間的界限很難維護。類似的功能隨處可見,使得開發或維護變得難上加難。

遇被上述的問題纏繞着,就能夠想一想微服務是否能夠幫你解決這些事情。

微服務將高內聚、低耦合這個理念應用到獨立的服務上,把因相同緣由而變化的東西聚到一塊兒,把因不一樣緣由而變化的東西分離出來。根據業務的邊界來肯定服務的邊界

1.6小結

主要總結了什麼是微服務,微服務的好處與不足,以及在什麼場景使用微服務。

微服務不是銀彈,在享受它來帶的好處的同時,也要作好準備。主要在服務管理上,須要在部署、測試、監控等方面作更多的工做。

微服務須要根據業務來拆分,業務的邊界就是微服務的邊界,脫離的業務的微服務很難找到合適的邊界,從而使得相互間的依賴變得混亂不堪。

相關文章
相關標籤/搜索