Sentinel x Spring Cloud,打造更好用的微服務生態
近日,Sentinel 貢獻的 spring-cloud-circuitbreaker-sentinel 模組正式被 Spring Cloud 社群合併至 Spring Cloud Circuit Breaker,由此,Sentinel 加入了 Spring Cloud Circuit Breaker 俱樂部,成為 Spring Cloud 官方的主流推薦選擇之一。這意味著,Spring Cloud 微服務的開發者在熔斷降級領域有了更多的選擇,可以更方便地利用 Sentinel 來保障微服務的穩定性。
一、什麼是 Spring Cloud Circuit Breaker?
Spring Cloud Circuit Breaker 是 Spring Cloud 官方的熔斷器元件庫,提供了一套統一的熔斷器抽象API介面,允許開發者自由選擇合適的熔斷器實現。這個官方的熔斷器元件庫,截至目前,官方推薦的熔斷器元件有:
Hystrix
Resilience4J
Sentinel
Spring Retry
當前,Spring Cloud Circuit Breaker 正處於孵化階段中,未來將合併到 Spring Cloud 主幹版本正式釋出。
Spring Cloud Circuit Breaker:
https://github.com/spring-cloud-incubator/spring-cloud-circuitbreaker
二、Sentinel 發展歷程
2012 年
Sentinel 誕生於阿里巴巴集團內部,主要功能為入口流量控制;
2013 - 2018 年
Sentinel 在阿里巴巴集團內部迅速發展,成為基礎技術模組,覆蓋了所有的核心場景。Sentinel 也因此積累了大量的流量控制場景以及生產實踐;
2018年7月
阿里巴巴宣佈限流降級框架元件 Sentinel 正式開源,在此之前,Sentinel 作為阿里巴巴“大中臺、小前臺”架構中的基礎模組,已經覆蓋了阿里的所有核心場景,因此積累了大量的流量歸整場景以及生產實踐;
2018年9月
Sentinel 釋出 v0.2.0版本,釋放非同步呼叫支援、熱點引數限流等多個重要特性;
2018年10月
Sentinel 被列入CNCF雲原生全景圖譜,位於編排和管理模組象限中;
2018年10月
Sentinel 釋出首個 GA 版本 v1.3.0,該版本包括 Sentinel 控制檯功能的完善和一些 bug 修復,以及其它的產品改進;
2018年12月
Sentinel釋出v1.4,加入了開發者關注的叢集流控功能;
2019年3月
Sentinel 釋出1.5.0 ,引入 Reactive 支援;
2019年4月
Sentinel 貢獻的 spring-cloud-circuitbreaker-sentinel 模組正式被Spring Cloud社群合併至 Spring Cloud Circuit Breaker,成為 Spring Cloud 官方的主流推薦選擇之一。
2019年4月25日
Sentinel 釋出 1.6.0 ,提供對 Spring Cloud Gateway、Zuul 等主流 API Gateway 的定製化支援。
三、Sentinel 的技術特點
Sentinel 的核心思想是:根據對應資源配置的規則來為資源執行相應的流控/降級/系統保護策略。在 Sentinel 中資源定義和規則配置是分離的。使用者先通過 Sentinel API 給對應的業務邏輯定義資源,然後可以在需要的時候動態配置規則。
Sentinel 的優勢和特性有:
輕量級,核心庫無多餘依賴,效能損耗小。
方便接入,開源生態廣泛。Sentinel 對 Dubbo、Spring Cloud、Web Servlet、gRPC 等常用框架提供適配模組,只需引入相應依賴並簡單配置即可快速接入;同時針對自定義的場景 Sentinel 還提供低侵入性的註解資源定義方式,方便自定義接入。
豐富的流量控制場景。Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,流控維度包括流控指標、流控效果(塑形)、呼叫關係、熱點、叢集等各種維度,針對系統維度也提供自適應的保護機制。
易用的控制檯,提供實時監控、機器發現、規則管理等能力。
完善的擴充套件性設計,提供多樣化的 SPI 介面,方便使用者根據需求給 Sentinel 新增自定義的邏輯。
更多技術特點介紹:
高可用架構社群專訪,點選 這裡
技術選型:Sentinel vs. Hystrix,點選 這裡
四、誰正在使用 Sentinel
目前已有不少企業使用者在使用開源版本和雲上版本的 Sentinel,包括順豐、vivo、每日優鮮、拼多多、易企秀、愛奇藝、融金所、VIPKID、喜馬拉雅FM、百融金服等(按登記順序排序),我們也在社群發起了“who is using Sentinel”的issue,可以去這個頁面瞭解各家企業的使用場景。
Who is using Sentinel
https://github.com/alibaba/Sentinel/issues/18
同時,我們提供了 Sentinel 的雲上實現,並融入架構視覺化、故障演練等功能,形成阿里雲高可用服務 AHAS,目的是幫助更多開發者更方便的接入應用高可用能力。
阿里雲高可用服務 AHAS:
https://cn.aliyun.com/product/ahas
五、Sentinel 未來的發展方向
未來,Sentinel 會繼續在無規則容量保護的路上探索,提供更多自適應限流策略,更好地結合系統容量來進行流量控制。另外,Sentinel 也會支援更廣泛的開源生態,包括 API Gateway、Service Mesh、多語言客戶端等;同時也會抽象出標準的指標和監控介面,方便對接 Prometheus 等常用的監控系統。未來 Sentinel 會進一步強化叢集流控的能力,加強對 Cloud Native 生態和 Service Mesh 的支援,在雲原生相關領域更好地發揮穩定性保障的作用。
# 和 Sentinel 相關的開源專案
Sentinel
https://github.com/alibaba/Sentinel
Spring Cloud
https://spring.io/projects/spring-cloud
Spring Cloud Circuit Breaker
https://github.com/spring-cloud-incubator/spring-cloud-circuitbreaker
Dubbo
http://dubbo.apache.org/en-us/
Spring Cloud Alibaba
https://github.com/spring-cloud-incubator/spring-cloud-alibaba
Nacos
https://github.com/alibaba/nacos
# Sentinel Contributors
@sczyh30, @carpenterLee, @cdfive, @jasonjoo2010, @mjaow, @canglang1973, @talshalti, @kexianjun,@yikangfeng, @luoxn28, @all4you, @nicktan, @jz0630, @bitonly, @zhaixiaoxiang, @dqing0, @paulkennethkent, @shxz130, @zhousiliang163, @beston123, @lawrencewu, @blindpirate, @HaojunRen, @ATAXGT, @hantianwei, @MickMo, @yklove, @xburning, @yanlinly, @aalmiray, @Leishunyu, @wangjunwei87, @kangyl, @Arlmls, @YoungHu, @foreveryang321, @fangjian0423, @allencloud, @ro9er, @xcaspar, @shannon312, @waveng, @yfh0918, @refactormachine, @jialianglinjl, @kimmking, @nobodyiam, @guonanjun, @manzhizhen, @xg1907
文章縮圖
Photo by Ben-hershey on Unsplash
©每週一推
第一時間獲得下期分享
☟☟☟
Tips:
# 點下“在看”❤️
# 然後,公眾號對話方塊內傳送“浴巾“,試試手氣??
# 本期獎品是來自淘寶心選的綿柔浴巾。
相關文章
- Spring Cloud Alibaba微服務生態的基礎實踐SpringCloud微服務
- Spring Cloud Alibaba生態探索:Dubbo、Nacos及Sentinel的完美結合SpringCloud
- 微服務生態元件之Spring Cloud OpenFeign詳解和原始碼分析微服務元件SpringCloud原始碼
- 微服務生態元件之Spring Cloud LoadBalancer詳解和原始碼分析微服務元件SpringCloud原始碼
- 微服務[v1.0.0][Spring生態概述]微服務Spring
- spring cloud 微服務實戰SpringCloud微服務
- spring cloud 和 阿里微服務spring cloud AlibabaSpringCloud阿里微服務
- 微服務Spring Cloud17_Spring Cloud概述3微服務SpringCloud
- Spring Cloud 微服務的那點事SpringCloud微服務
- 基於Spring Cloud的微服務落地SpringCloud微服務
- 微服務03 微服務sentinel, springcloudgateway微服務SpringGCCloudGateway
- spring cloud分散式微服務:Spring Cloud ConfigSpringCloud分散式微服務
- Spring Cloud Alibaba SentinelSpringCloud
- 微服務:spring-cloud-archaius 起步微服務SpringCloudAI
- [譯] JWT 與 Spring Cloud 微服務JWTSpringCloud微服務
- 微服務元件 Sentinel(三)微服務元件
- 微服務元件 Sentinel(二)微服務元件
- 微服務元件 Sentinel(一)微服務元件
- Spring Cloud微服務(一):公共模組的搭建SpringCloud微服務
- spring cloud微服務分散式雲架構Spring Cloud ZuulSpringCloud微服務分散式架構Zuul
- spring cloud微服務分散式雲架構-Spring Cloud BusSpringCloud微服務分散式架構
- 微服務 | Spring Cloud(一):從單體SSM 到 Spring Cloud微服務SpringCloudSSM
- 微服務架構:構建PHP微服務生態微服務架構PHP
- Spring Cloud Alibaba | Sentinel: 服務限流基礎篇SpringCloud
- Spring Cloud Alibaba | Sentinel: 服務限流高階篇SpringCloud
- Spring Cloud構建微服務架構-spring cloud服務監控中心SpringCloud微服務架構
- Spring Cloud 微服務開發系列整理SpringCloud微服務
- Spring Cloud Stream微服務訊息框架SpringCloud微服務框架
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- 微服務 Spring cloud 各元件介紹微服務SpringCloud元件
- Spring Cloud Alibaba微服務實戰SpringCloud微服務
- Spring Cloud微服務運營配置教程SpringCloud微服務
- 微服務架構:Dubbo VS Spring Cloud微服務架構SpringCloud
- spring cloud微服務架構設計SpringCloud微服務架構
- Spring Cloud 微服務架構進階SpringCloud微服務架構
- 理解Spring Cloud微服務框架核心元件SpringCloud微服務框架元件
- 部署Azure Spring Cloud微服務應用SpringCloud微服務
- 【docker&spring cloud】微服務化改造DockerSpringCloud微服務