微服務與微服務架構
1、什麼是微服務
微服務 (
Microservice Architecture
)是近幾年開始流行的一種架構思想。
通常而言,微服務架構是一種架構模式,或者說是一種架構風格,它提倡将單一的應用程式劃分成一組小的服務每個服務運作在其獨立的自己的程序内。服務之間互相協調,互相配置,為使用者提供最終價值。服務之間采用輕量級的通信機制互相溝通,每個服務都圍繞着具體的業務進行建構,并且能夠被獨立的部署到生産環境中,另外應盡量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合适的語言,工具對其進行建構,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的資料存儲。
2、微服務與微服務架構
微服務:
強調的是服務的大小,是具體解決某一個問題提供落地對應用服務的一個服務應用。
微服務架構:
是一種新的架構形式,由
Martin Fowler
2014年提出
微服務架構是一種架構模式,它提倡将單一應用劃分成一組小的服務,服務之間互相協調,互相配合,為使用者提供最終價值。
3、微服務的優缺點
優點:
- 每個服務足夠内聚,代碼易了解
- 開發簡單,開發效率高
- 能夠被小團隊開發
- 松耦合
- 可以使用不同的語言開發
- 易于和第三方內建
- 易于修改和維護
- 允許利用融合最新技術
- 隻是業務邏輯,不會與
或其他界面混合HTML CSS
- 每個微服務都有自己的儲存内裡,可以有自己的資料庫,也可以有同一資料庫
缺點:
- 開發人員要處理分布式系統的複雜性
- 多服務運維難度會随着服務的增加,運維的壓力也在增大
- 系統部署依賴
- 服務間通信成本
- 資料一緻性
- 系統內建測試
- 性能監控
4、微服務技術棧
微服務 | 技術 |
---|---|
服務開發 | |
服務配置與管理 | 公司的 阿裡的 |
服務注冊發現 | |
服務調用 | |
服務熔斷器 | |
負載均衡 | |
服務接口調用 | |
消息隊列 | |
服務配置中心管理 | |
服務路由 | |
服務監控 | |
全鍊路追蹤 | |
服務部署 | |
資料流操作開發包 | |
事件消息總線 | |
5、為什麼使用 Spring Cloud
Spring Cloud
5.1、選型依據
- 整體解決方案和架構成熟度
- 社群熱度
- 可維護性
- 學習曲線
5.2、目前大公司微服務架構
- 阿裡:
dubbo + HFS
- 京東:
JSF
- 新浪:
Motan
- 當當網:
DubboX
6、各微服務架構對比
功能、服務架構 | | | | | |
---|---|---|---|---|---|
功能定位 | 完整服務架構愛 | 架構,實作叢集環境的基本服務注冊發現 | 架構 | 架構 | 服務架構 |
支援 | √, 支援多種可插拔的序列化選擇 | × | × | × | × |
支援 | × | √, | √ | √ | √ |
支援多語言 | √ | × | √ | √ | × |
負載均衡 | √ | √ | × | × | √ |
配置服務 | 集中配置 | √ | × | × | × |
服務調用鍊監控 | √ | × | × | × | × |
高可用,容錯 | √ | √ | × | × | √ |
典型應用案例 | | | | | |
社群活躍度 | 高 | 一般 | 高 | 一般 | 2017年後重新開始維護,之前中斷5年 |
學習難度 | 中等 | 低 | 高 | 高 | 低 |
文檔豐富程度 | 高 | 一般 | 一般 | 一般 | 高 |
其他 | 為應用程式帶來了更多的管理端點 | 支援降級 | 内部在開發內建 | 定義 | 實踐的公司較多 |
1、什麼是微服務
微服務 (
Microservice Architecture
)是近幾年開始流行的一種架構思想。
通常而言,微服務架構是一種架構模式,或者說是一種架構風格,它提倡将單一的應用程式劃分成一組小的服務每個服務運作在其獨立的自己的程序内。服務之間互相協調,互相配置,為使用者提供最終價值。服務之間采用輕量級的通信機制互相溝通,每個服務都圍繞着具體的業務進行建構,并且能夠被獨立的部署到生産環境中,另外應盡量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合适的語言,工具對其進行建構,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的資料存儲。
2、微服務與微服務架構
微服務:
強調的是服務的大小,是具體解決某一個問題提供落地對應用服務的一個服務應用。
微服務架構:
是一種新的架構形式,由
Martin Fowler
2014年提出
微服務架構是一種架構模式,它提倡将單一應用劃分成一組小的服務,服務之間互相協調,互相配合,為使用者提供最終價值。
3、微服務的優缺點
優點:
- 每個服務足夠内聚,代碼易了解
- 開發簡單,開發效率高
- 能夠被小團隊開發
- 松耦合
- 可以使用不同的語言開發
- 易于和第三方內建
- 易于修改和維護
- 允許利用融合最新技術
- 隻是業務邏輯,不會與
或其他界面混合HTML CSS
- 每個微服務都有自己的儲存内裡,可以有自己的資料庫,也可以有同一資料庫
缺點:
- 開發人員要處理分布式系統的複雜性
- 多服務運維難度會随着服務的增加,運維的壓力也在增大
- 系統部署依賴
- 服務間通信成本
- 資料一緻性
- 系統內建測試
- 性能監控
4、微服務技術棧
微服務 | 技術 |
---|---|
服務開發 | |
服務配置與管理 | 公司的 阿裡的 |
服務注冊發現 | |
服務調用 | |
服務熔斷器 | |
負載均衡 | |
服務接口調用 | |
消息隊列 | |
服務配置中心管理 | |
服務路由 | |
服務監控 | |
全鍊路追蹤 | |
服務部署 | |
資料流操作開發包 | |
事件消息總線 | |
5、為什麼使用 Spring Cloud
Spring Cloud
5.1、選型依據
- 整體解決方案和架構成熟度
- 社群熱度
- 可維護性
- 學習曲線
5.2、目前大公司微服務架構
- 阿裡:
dubbo + HFS
- 京東:
JSF
- 新浪:
Motan
- 當當網:
DubboX
6、各微服務架構對比
功能、服務架構 | | | | | |
---|---|---|---|---|---|
功能定位 | 完整服務架構愛 | 架構,實作叢集環境的基本服務注冊發現 | 架構 | 架構 | 服務架構 |
支援 | √, 支援多種可插拔的序列化選擇 | × | × | × | × |
支援 | × | √, | √ | √ | √ |
支援多語言 | √ | × | √ | √ | × |
負載均衡 | √ | √ | × | × | √ |
配置服務 | 集中配置 | √ | × | × | × |
服務調用鍊監控 | √ | × | × | × | × |
高可用,容錯 | √ | √ | × | × | √ |
典型應用案例 | | | | | |
社群活躍度 | 高 | 一般 | 高 | 一般 | 2017年後重新開始維護,之前中斷5年 |
學習難度 | 中等 | 低 | 高 | 高 | 低 |
文檔豐富程度 | 高 | 一般 | 一般 | 一般 | 高 |
其他 | 為應用程式帶來了更多的管理端點 | 支援降級 | 内部在開發內建 | 定義 | 實踐的公司較多 |