關於微服務架構方案選型
推薦優先採用
Spring Cloud Alibaba
方案
概述
目前業界對 Spring Cloud 使用最廣的就是 Spring Cloud Netflix 了。
2018年12月12日 Spring Cloud Netflix項目宣佈已經進入維護模式 官方新聞
什麼是維護模式?
將模塊置於維護模式意味着Spring Cloud團隊將不再向該模塊添加新功能。我們將修復阻止程序錯誤和安全性問題,還將考慮並審查社區的一些小請求。自Greenwich.Release發佈全面上市以來,我們打算繼續爲這些模塊提供至少一年的支持。
這意味着繼續使用它再也沒有新功能福利了;
推薦替代品
服務熔斷 | Hystrix | Resilience4j |
---|---|---|
監控 | Hystrix Dashboard / Turbine | Micrometer + Monitoring System |
負載均衡 | Ribbon | Spring Cloud Loadbalancer |
路由網關 | Zuul | Spring Cloud Gateway |
分佈式配置 | Archaius | Spring Boot external config + Spring Cloud Config |
Spring Cloud Netflix
Spring Cloud Netflix功能:
- 服務發現:可以註冊Eureka實例,並且客戶端可以使用Spring託管的Bean發現實例
- 服務發現:可以使用聲明性Java配置創建嵌入式Eureka服務器
- 斷路器:Hystrix客戶端可以使用簡單的註釋驅動的方法裝飾器構建
- 斷路器:具有聲明性Java配置的嵌入式Hystrix儀表板
- 聲明式REST客戶端:Feign創建一個用JAX-RS或Spring MVC註釋修飾的接口的動態實現。
- 客戶端負載均衡器:功能區
- 外部配置:從Spring Environment到Archaius的橋樑(使用Spring Boot約定啓用Netflix組件的本機配置)
- 路由器和過濾器:Zuul過濾器的自動重新註冊,以及用於反向代理創建的簡單配置約定
Spring Cloud Alibaba
Spring Cloud Alibaba 特徵:
- 流量控制和服務降級:使用Sentinel進行流量控制,斷路和系統自適應保護。
- 服務註冊和發現:實例可以在Nacos上註冊,客戶可以使用Spring管理的bean發現實例。支持通過Spring Cloud Netflix的客戶端負載均衡器Ribbon。
- 分佈式配置:使用Nacos作爲數據存儲
- 事件驅動:構建與Spring Cloud Stream RocketMQ Binder連接的高度可擴展的事件驅動微服務
- 消息總線:使用Spring Cloud Bus RocketMQ鏈接分佈式系統的節點
- 分佈式事務:支持高性能且易於使用的Seata分佈式事務解決方案
- Dubbo RPC:通過Dubbo RPC擴展Spring Cloud服務到服務調用的通信協議
- 阿里雲對象存儲:OSS的Spring資源抽象。阿里雲對象存儲服務(OSS)是一種加密,安全,經濟高效且易於使用的對象存儲服務,可讓您在雲中存儲,備份和存檔大量數據
對比
Spring Cloud Netflix | Spring Cloud Alibaba | Spring Cloud | Dubbo + Zookeeper | |
---|---|---|---|---|
註冊中心 | Eureka | Nacos | —— | Zookeeper |
服務熔斷 | Hystrix | Sentinel | —— | —— |
服務調用 | Feign(內置Ribbon) | Dubbo Rpc | OpenFeign RestTemplate | —— |
服務路由 | Zuul | Dubbo PROXY | Spring Cloud Gateway | —— |
分佈式消息 | —— | RocketMQ | RabbitMQ | —— |
負載均衡 | Ribbon | Dubbo LB | —— | —— |
分佈式事務 | —— | Seata | —— | —— |
分佈式配置 | Archaius | Nacos | Spring Cloud Config | Zookeeper |
Dubbo 與 Spring Cloud 性能比較
Spring Cloud alibaba 技術架構
建議
-
Spring Cloud和Dubbo + Zookeeper屬於自行組裝。
-
Spring Cloud Netflix 系列技術棧進入維護模式(不再添加新特性)
-
Spring Cloud Alibaba致力於提供微服務開發的一站式解決方案(全家桶)。並且已經貢獻給Spring
推薦優先採用 Spring Cloud Alibaba
方案