javascript
Sentinel 成为 Spring Cloud 官方推荐的主流熔断降级方案
近日,Sentinel 貢獻(xiàn)的?spring-cloud-circuitbreaker-sentinel??模塊正式被Spring Cloud社區(qū)合并至 Spring Cloud Circuit Breaker,由此,Sentinel 加入了 Spring Cloud Circuit Breaker 俱樂部,成為 Spring Cloud 官方的主流推薦選擇之一。這意味著,Spring Cloud 微服務(wù)的開發(fā)者在熔斷降級領(lǐng)域有了更多的選擇,可以更方便地利用 Sentinel 來保障微服務(wù)的穩(wěn)定性。
一、什么是?Spring Cloud Circuit Breaker?
Spring Cloud Circuit Breaker?是 Spring Cloud 官方的熔斷器組件庫,提供了一套統(tǒng)一的熔斷器抽象API接口,允許開發(fā)者自由選擇合適的熔斷器實(shí)現(xiàn)。這個(gè)官方的熔斷器組件庫,截至目前,官方推薦的熔斷器組件有:
- Hystrix
- Resilience4J
- Sentinel
- Spring Retry
當(dāng)前,Spring Cloud Circuit Breaker 處于孵化階段中,未來將合并到 Spring Cloud 主干版本正式發(fā)布。
Spring Cloud Circuit Breaker?
https://github.com/spring-cloud-incubator/spring-cloud-circuitbreaker
二、Sentinel 發(fā)展歷程
2012 年,Sentinel 誕生于阿里巴巴集團(tuán)內(nèi)部,主要功能為入口流量控制;
2013 - 2018 年,Sentinel 在阿里巴巴集團(tuán)內(nèi)部迅速發(fā)展,成為基礎(chǔ)技術(shù)模塊,覆蓋了所有的核心場景。Sentinel 也因此積累了大量的流量控制場景以及生產(chǎn)實(shí)踐;
2018年7月,阿里巴巴宣布限流降級框架組件?Sentinel 正式開源,在此之前,Sentinel 作為阿里巴巴“大中臺、小前臺”架構(gòu)中的基礎(chǔ)模塊,已經(jīng)覆蓋了阿里的所有核心場景,因此積累了大量的流量歸整場景以及生產(chǎn)實(shí)踐;
2018年9月,Sentinel 發(fā)布 v0.2.0版本,釋放異步調(diào)用支持、熱點(diǎn)參數(shù)限流等多個(gè)重要特性;
2018年10月,Sentinel 發(fā)布首個(gè) GA 版本 v1.3.0,該版本包括 Sentinel 控制臺功能的完善和一些 bug 修復(fù),以及其它的產(chǎn)品改進(jìn);
2018年12月,Sentinel發(fā)布v1.4,加入了開發(fā)者關(guān)注的集群流控功能;
2019年1月,Sentinel發(fā)布v1.4,加入了開發(fā)者關(guān)注的集群流控功能;
2019年3月,Sentinel 發(fā)布1.5.0 ,引入 Reactive 支持;
2019年4月,Sentinel 貢獻(xiàn)的?spring-cloud-circuitbreaker-sentinel??模塊正式被Spring Cloud社區(qū)合并至 Spring Cloud Circuit Breaker,成為?Spring Cloud 官方的主流推薦選擇之一。
2019年4月25日,Sentinel 發(fā)布 1.6.0 ,提供對 Spring Cloud Gateway、Zuul 等主流 API Gateway 的定制化支持。
三、Sentinel 的技術(shù)特點(diǎn)
Sentinel 的核心思想:根據(jù)對應(yīng)資源配置的規(guī)則來為資源執(zhí)行相應(yīng)的流控/降級/系統(tǒng)保護(hù)策略。在 Sentinel 中資源定義和規(guī)則配置是分離的。用戶先通過 Sentinel API 給對應(yīng)的業(yè)務(wù)邏輯定義資源,然后可以在需要的時(shí)候動態(tài)配置規(guī)則。
Sentinel 的優(yōu)勢和特性:
- 輕量級,核心庫無多余依賴,性能損耗小。
- 方便接入,開源生態(tài)廣泛。Sentinel 對 Dubbo、Spring Cloud、Web Servlet、gRPC 等常用框架提供適配模塊,只需引入相應(yīng)依賴并簡單配置即可快速接入;同時(shí)針對自定義的場景 Sentinel 還提供低侵入性的注解資源定義方式,方便自定義接入。
- 豐富的流量控制場景。Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,流控維度包括流控指標(biāo)、流控效果(塑形)、調(diào)用關(guān)系、熱點(diǎn)、集群等各種維度,針對系統(tǒng)維度也提供自適應(yīng)的保護(hù)機(jī)制。
- 易用的控制臺,提供實(shí)時(shí)監(jiān)控、機(jī)器發(fā)現(xiàn)、規(guī)則管理等能力。
- 完善的擴(kuò)展性設(shè)計(jì),提供多樣化的 SPI 接口,方便用戶根據(jù)需求給 Sentinel 添加自定義的邏輯。
更多技術(shù)特點(diǎn)介紹:
高可用架構(gòu)社區(qū)專訪,點(diǎn)擊這里
技術(shù)選型:Sentinel vs. Hystrix,點(diǎn)擊這里
四、誰正在使用?Sentinel?
目前已有不少企業(yè)用戶在使用開源版本和云上版本的Sentinel,包括順豐、vivo、每日優(yōu)鮮、拼多多、易企秀、愛奇藝、融金所、VIPKID、喜馬拉雅FM、百融金服等(按登記順序排序),我們也在社區(qū)發(fā)起了“who is using Sentinel”[7]的issue,可以去這個(gè)頁面了解各家企業(yè)的使用場景。
同時(shí),我們提供了?Sentinel 的云上實(shí)現(xiàn),并融入架構(gòu)可視化、故障演練等功能,形成阿里云高可用服務(wù) AHAS,目的是幫助更多開發(fā)者更方便的接入應(yīng)用高可用能力。
阿里云高可用服務(wù) AHAS:
https://cn.aliyun.com/product/ahas](https://cn.aliyun.com/product/ahas)
五、Sentinel 未來的發(fā)展方向
未來,Sentinel 會繼續(xù)在無規(guī)則容量保護(hù)的路上探索,提供更多自適應(yīng)限流策略,更好地結(jié)合系統(tǒng)容量來進(jìn)行流量控制。另外,Sentinel 也會支持更廣泛的開源生態(tài),包括 API Gateway、Service Mesh、多語言客戶端等;同時(shí)也會抽象出標(biāo)準(zhǔn)的指標(biāo)和監(jiān)控接口,方便對接 Prometheus 等常用的監(jiān)控系統(tǒng)。未來 Sentinel 會進(jìn)一步強(qiáng)化集群流控的能力,加強(qiáng)對 Cloud Native 生態(tài)和 Service Mesh 的支持,在云原生相關(guān)領(lǐng)域更好地發(fā)揮穩(wěn)定性保障的作用。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的Sentinel 成为 Spring Cloud 官方推荐的主流熔断降级方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里敏捷教练:多团队开发一个产品的组织设
- 下一篇: 云原生数据库如何打造业务弹性