到底什么是微服務?整理了微服務的11個優點


微服務概述

相關視頻教程(來自動力節點):https://www.bilibili.com/video/BV1nK4y1j7gL

1、什么是微服務?

微服務(Microservice Architecture) 是近幾年流行的一種架構思想,關於它的概念很難一言以蔽之。究竟什么是微服務呢?我們在此引用ThoughtWorks 公司的首席科學家 Martin Fowler 於2014年提出的一段話:

原文:martinfowler.com/articles/mi…

漢化:www.cnblogs.com/liuning8023…

就目前而言,對於微服務,業界並沒有一個統一的,標准的定義。

但通常而言,微服務架構是一種架構模式,或者說是一種架構風格,它體長將單一的應用程序划分成一組小的服務,每個服務運行在其獨立的自己的進程內,服務之間互相協調,互相配置,為用戶提供最終價值,服務之間采用輕量級的通信機制(HTTP)互相溝通,每個服務都圍繞着具體的業務進行構建,並且能狗被獨立的部署到生產環境中,另外,應盡量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應該根據業務上下文,選擇合適的語言,工具(Maven)對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數據存儲。

再來從技術維度角度理解下:

微服務化的核心就是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事情,從技術角度看就是一種小而獨立的處理過程,類似進程的概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數據庫。

2、 微服務與微服務架構

微服務強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題/提供落地對應服務的一個服務應用,狹義的看,可以看作是IDEA中的一個個微服務工程,或者Moudel。IDEA 工具里面使用Maven開發的一個個獨立的小Moudel,它具體是使用SpringBoot開發的一個小模塊,專業的事情交給專業的模塊來做,一個模塊就做着一件事情。強調的是一個個的個體,每個個體完成一個具體的任務或者功能。

微服務架構一種新的架構形式,Martin Fowler 於2014年提出。微服務架構是一種架構模式,它體長將單一應用程序划分成一組小的服務,服務之間相互協調,互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中,服務與服務之間采用輕量級的通信機制**(如HTTP)互相協作,每個服務都圍繞着具體的業務進行構建,並且能夠被獨立的部署到生產環境中,另外,應盡量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具(如Maven)**對其進行構建。

3、微服務優缺點

優點

  • 單一職責原則;
  • 每個服務足夠內聚,足夠小,代碼容易理解,這樣能聚焦一個指定的業務功能或業務需求;
  • 開發簡單,開發效率高,一個服務可能就是專一的只干一件事;
  • 微服務能夠被小團隊單獨開發,這個團隊只需2-5個開發人員組成;
  • 微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的;
  • 微服務能使用不同的語言開發;
  • 易於和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如jenkins,Hudson,bamboo;
  • 微服務易於被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果,無需通過合作才能體現價值;
  • 微服務允許利用和融合最新技術;
  • 微服務只是業務邏輯的代碼,不會和HTML,CSS,或其他的界面混合;
  • 每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以有統一的數據庫;

缺點

  • 開發人員要處理分布式系統的復雜性;
  • 多服務運維難度,隨着服務的增加,運維的壓力也在增大;
  • 系統部署依賴問題;
  • 服務間通信成本問題;
  • 數據一致性問題;
  • 系統集成測試問題;
  • 性能和監控問題;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM