學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師
視頻合集
概述
目前市場上主流的 第一套微服務(wù)架構(gòu)解決方案:Spring Boot + Spring Cloud Netflix
Spring Cloud 為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線)。分布式系統(tǒng)的協(xié)調(diào)導(dǎo)致了樣板模式, 使用 Spring Cloud 開發(fā)人員可以快速地支持實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序。他們將在任何分布式環(huán)境中運(yùn)行良好,包括開發(fā)人員自己的筆記本電腦,裸機(jī)數(shù)據(jù)中心,以及 Cloud Foundry 等托管平臺(tái)。
目前業(yè)界對(duì) Spring Cloud 使用最廣的就是 Spring Cloud Netflix 了。這意味著繼續(xù)使用它再也沒有新功能福利了;后續(xù)課程中我會(huì)采用 Spring Cloud Alibaba
方案來替代 Spring Cloud Netflix,請(qǐng)大家持續(xù)關(guān)注我的博客哦!
項(xiàng)目已經(jīng)進(jìn)入維護(hù)模式
【官方新聞】Spring Cloud Greenwich.RC1 available now
2018 年 12 月 12 日,Netflix 宣布 Spring Cloud Netflix 系列技術(shù)棧進(jìn)入維護(hù)模式(不再添加新特性)
最近,Netflix 宣布 Hystrix
正在進(jìn)入維護(hù)模式。自 2016 年以來,Ribbon
已處于類似狀態(tài)。雖然 Hystrix 和 Ribbon 現(xiàn)已處于維護(hù)模式,但它們?nèi)匀辉?Netflix 大規(guī)模部署。
Hystrix Dashboard
和 Turbine
已被 Atlas 取代。這些項(xiàng)目的最后一次提交分別是 2 年前和 4 年前。Zuul1
和 Archaius1
都被后來不兼容的版本所取代。
以下 Spring Cloud Netflix 模塊和相應(yīng)的 Starter 將進(jìn)入維護(hù)模式:
- spring-cloud-netflix-archaius
- spring-cloud-netflix-hystrix-contract
- spring-cloud-netflix-hystrix-dashboard
- spring-cloud-netflix-hystrix-stream
- spring-cloud-netflix-hystrix
- spring-cloud-netflix-ribbon
- spring-cloud-netflix-turbine-stream
- spring-cloud-netflix-turbine
- spring-cloud-netflix-zuul
什么是維護(hù)模式
將模塊置于維護(hù)模式,意味著 Spring Cloud 團(tuán)隊(duì)將不會(huì)再向模塊添加新功能。我們將修復(fù) block 級(jí)別的 bug 以及安全問題,我們也會(huì)考慮并審查社區(qū)的小型 pull request。
替代品
我們建議對(duì)這些模塊提供的功能進(jìn)行以下替換
CURRENT | REPLACEMENT |
---|---|
Hystrix | Resilience4j |
Hystrix Dashboard / Turbine | Micrometer + Monitoring System |
Ribbon | Spring Cloud Loadbalancer |
Zuul 1 | Spring Cloud Gateway |
Archaius 1 | Spring Boot external config + Spring Cloud Config |
其它補(bǔ)充
Netflix Concurrency Limits
并發(fā)限制模塊,它是 Netflix 開源的限流器項(xiàng)目,Spring Cloud 在 Greenwich 版本中引入 spring-cloud-netflix-concurrency-limits
Archaius 1
有些人對(duì)它可能比較陌生,也是 Netflix 公司開源項(xiàng)目,基于 Java 的配置管理類庫(apache common configuration 類庫的擴(kuò)展),主要用于多配置存儲(chǔ)的動(dòng)態(tài)獲取。它主要的特性:
- 動(dòng)態(tài)類型化屬性
- 高效和線程安全的配置操作
- 配置改變時(shí)的回調(diào)機(jī)制
- 輪詢框架
- JMX,通過Jconsole檢查和調(diào)用操作屬性
- 組合配置
Resilience4j
目前還中孵化中,Spring 可能是要抽象一個(gè)斷路器的統(tǒng)一規(guī)范,讓不同的斷路器(Hystrix、Resilience4j、Sentinel(阿里開源))選擇使用
Micrometer
Spring Boot 2 中的 Spring Boot Actuator 底層用的就是 Micrometer,它是 Pivotal 公司(也就是 Spring 所在的公司)開源的監(jiān)控門面,類似于監(jiān)控世界的 Slf4j。Resilience4j 自帶整合了 Micrometer;目前還無法判斷是否比 Hystrix Dashboard /Turbine 的更強(qiáng)大,更好用。
Spring Cloud Loadbalancer
目前還中孵化中,使用上和 Ribbon 區(qū)別不大
Spring Cloud Gateway
Zuul 持續(xù)跳票 1 年多,1.x 是一個(gè)基于阻塞 IO 的 API Gateway 以及 Servlet;直到 2018 年 5 月,Zuul 2.x(基于 Netty,也是非阻塞的,支持長連接)才發(fā)布,但 Spring Cloud 暫時(shí)還沒有整合計(jì)劃。Spring Cloud Gateway 比 Zuul 1.x 系列的性能和功能整體要好。
Spring Boot external config + Spring Cloud Config
Netflix 開源的組件(Archaius 1/Ribbon/Hystrix)都沒有使用 Spring Boot 的規(guī)范(spring-boot-configuration-processor),根本沒有 metadata.json 文件,于是這部分配置 IDE 無法給你提示