微服務架構總結--1.微服務的特點

微服務架構一書讀後感,並結合自己實際工作的歸納總結。

1.什麼是微服務?

  • 官方說法:微服務架構就是將單一程序開發成一個微服務,每個微服務運行在自己的進程中,並使用輕量級的機制通信,通常是HTTP RESTFUL API。這些服務圍繞業務能力來劃分,並通過自動化部署機制來獨立部署。這些服務可以使用不同的編程語言,不同數據庫,以保證最低限度的集中式管理。
  • 個人理解:每一個服務都有自己獨立的功能、數據源,並能完成自治。最小程度依賴外部其他服務。

2.微服務應該滿足的特性

  • 內聚性:與服務本身相關的功能聚合在一起,類似平時代碼中使用的一個包結構。
  • 單一職責原則:一個微服務本身應該只做一件事情。當然實際工作中一個微服務的劃分會和公司規模、組織結構、功能/複雜性都有關聯。
  • 自治性:一個微服務本身應該有獨立的、與其他服務隔離的主機(這裏的主機套用書裏的觀點,可以是物理機、可以是容器,可以理解成支持服務運行的環境)。與其他服務隔離的數據庫、緩存等。服務本身應該能獨立使用其中的資源而不依賴與其他的服務。

之上所說的內容也即是常見的高內聚、鬆耦合

3.微服務的優點

  • 彈性:對比單塊應用,理論上單個微服務崩潰只是其中一個功能不可用,而不是整個服務不可用。(實際情況如果不處理好熔斷等機制,單個服務的崩潰是可能引起雪崩效應)

  • 擴展性:對比單塊應用,微服務擴展相對簡單。

    • 水平擴展:無狀態的服務可以直接擴展,有狀態的服務理論上也只需要修改更少的代碼即可實現擴展。

    • 垂直擴展:因與其他服務依賴較低,理論上擴展功能也不易引起其他服務的修改。

  • 技術異構性:不同服務可以使用不同技術棧、不同類型的存儲引擎去實現,具有更高的靈活性與針對性。

  • 敏捷開發,快速迭代:與單塊應用相比,鬆耦合、代碼數量少,因此能更快的開發、迭代、修復、交付。

  • 可組合型:不同粒度、功能的服務可以很快速的組合在一起提供一個複雜的服務。

  • 可替代性優化:與單塊應用相比,對一個服務進行優化甚至替換都是快速並且可行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章