SpringCloud(1) ——回顧微服務和微服務架構
1.什麼是微服務
- 微服務(Microservice Architecture) 是近幾年流行的一種架構思想,關於它的概念很難一言以蔽之
- 究竟什麼是微服務呢?我們在此引用ThoughtWorks 公司的首席科學家 Martin Fowler 於2014年提出的一段話
- 就目前而言,對於微服務,業界並沒有一個統一的,標準的定義
- 但通常而言,微服務架構是一種架構模式,或者說是一種架構風格,它提倡將單一的應用程式劃分成一組小的服務,每個服務執行在其獨立的自己的程式內,服務之間互相協調,互相配置,為使用者提供最終價值,服務之間採用輕量級的通訊機制(HTTP)互相溝通,每個服務都圍繞著具體的業務進行構建,並且能狗被獨立的部署到生產環境中,另外,應儘量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應該根據業務上下文,選擇合適的語言,工具(Maven)對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的資料儲存
- 原文
- 漢化
- 再來從技術維度角度理解下:
- 微服務化的核心就是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事情,從技術角度看就是一種小而獨立的處理過程,類似程式的概念,能夠自行單獨啟動或銷燬,擁有自己獨立的資料庫
2.微服務與微服務架構
1.微服務
- 強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題/提供落地對應服務的一個服務應用,狹義的看,可以看作是IDEA中的一個個微服務工程,或者Moudel
IDEA 工具裡面使用Maven開發的一個個獨立的小Moudel,它具體是使用SpringBoot開發的一個小模組, 專業的事情交給專業的模組來做,一個模組就做著一件事情 強調的是一個個的個體,每個個體完成一個具體的任務或者功能
2.微服務架構
- 一種新的架構形式,Martin Fowler 於2014年提出
- 微服務架構是一種架構模式,它體長將單一應用程式劃分成一組小的服務,服務之間相互協調,互相配合,為使用者提供最終價值。每個服務執行在其獨立的程式中,服務與服務之間採用輕量級的通訊機制(如HTTP)互相協作,每個服務都圍繞著具體的業務進行構建,並且能夠被獨立的部署到生產環境中,另外,應儘量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具(如Maven)對其進行構建
3.微服務優缺點
1.優點
- 每個服務足夠內聚,足夠小,程式碼容易理解,這樣能聚焦一個指定的業務功能或業務需求【符合OOP7大原則中的單一職責原則】
- 開發簡單,開發效率高,一個服務可能就是專一的只幹一件事
- 微服務能夠被小團隊單獨開發,這個團隊只需2-5個開發人員組成
- 微服務是鬆耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的【每個微服務單獨部署和執行】
- 微服務能使用不同的語言開發
- 易於和第三方整合,微服務允許容易且靈活的方式整合自動部署,通過持續整合工具,如jenkins,Hudson,bamboo
- 微服務易於被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果,無需通過合作才能體現價值
- 微服務允許利用和融合最新技術
- 微服務只是業務邏輯的程式碼,不會和HTML,CSS,或其他的介面混合
- 每個微服務都有自己的儲存能力,可以有自己的資料庫,也可以有統一的資料庫
2.缺點
- 開發人員要處理分散式系統的複雜性
- 多服務運維難度,隨著服務的增加,運維的壓力也在增大
- 系統部署依賴問題
- 服務間通訊成本問題
- 資料一致性問題
- 系統整合測試問題
- 效能和監控問題
4.微服務技術棧有那些?
5.為什麼選擇SpringCloud作為微服務架構?
-
選型依據
- 整體解決方案和框架成熟度
- 社群熱度
- 可維護性
- 學習曲線
-
當前各大IT公司用的微服務架構有那些?
- 阿里:dubbo+HFS
- 京東:JFS
- 新浪:Motan
- 噹噹網:DubboX
- …
-
各微服務框架對比
相關文章
- 微服務實戰(九):落地微服務架構到直銷系統(回顧總結)微服務架構
- 微服務架構 SpringCloud - 元件和概念介紹微服務架構SpringGCCloud元件
- 微服務2:微服務全景架構微服務架構
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- 微服務架構和設計模式 - DZone微服務微服務架構設計模式
- 微服務架構微服務架構
- SpringCloud微服務架構開發實戰SpringGCCloud微服務架構
- 一. SpringCloud簡介與微服務架構SpringGCCloud微服務架構
- 微服務架構:構建PHP微服務生態微服務架構PHP
- 微服務架構(一):什麼是微服務微服務架構
- springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- 微服務架構初探微服務架構
- 慎用 “微服務” 架構微服務架構
- 基於SpringCloud的微服務架構設計SpringGCCloud微服務架構
- springcloud微服務分散式雲架構簡介SpringGCCloud微服務分散式架構
- 【分散式微服務企業快速架構】SpringCloud分散式、微服務、雲架構快速開發平臺分散式微服務架構SpringGCCloud
- 聊聊雲原生和微服務架構微服務架構
- (一)springcloud微服務分散式雲架構-SpringCloud簡介SpringGCCloud微服務分散式架構
- 微服務開發攻略之淺析微服務架構微服務架構
- [雲原生微服務架構](十)微服務架構的基礎知識微服務架構
- SOA架構和微服務架構的區別架構微服務
- 微服務架構—服務降級微服務架構
- 微服務架構初識微服務架構
- 微服務架構詳談微服務架構
- 微服務核心架構梳理微服務架構
- 微服務與架構師微服務架構
- 聊聊微服務架構思想微服務架構
- 微服務 dubbospring 架構微服務Spring架構
- 微服務架構簡介微服務架構
- 如何構建微服務架構微服務架構
- SpringCloud微服務治理SpringGCCloud微服務
- springcloud 微服務面試SpringGCCloud微服務面試
- 架構演進之「微服務架構」架構微服務
- 架構之:微服務架構漫談架構微服務
- 單體架構&微服務架構&中臺服務架構架構微服務
- 微服務架構之「 服務註冊 」微服務架構
- 架構之:微服務和單體服務之爭架構微服務
- 微服務架構學習與思考(05):微服務架構適用場景分析微服務架構