Hystrix以外健壯微服務的新選擇:Sentinel 發佈首個生產版本

Sentinel 阿里中間件團隊開源的,面向分佈式服務架構的輕量級流量控制框架,主要以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多個維度來幫助用戶保護服務的穩定性。數據庫

近日,阿里中間件開源組件Sentinel 發佈首個官方推薦可生產版本:1.3.0-GA ,該版本包括 Sentinel 控制檯功能的完善和一些 bug 修復,以及其它的產品改進,是一個具備里程碑意義的生產可用版本。服務器

Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,完美地保障了阿里巴巴歷年雙十一的穩定性,所以從開源之初即具有生產可用的能力。Sentinel 開源三個月以來,受到開源社區的普遍關注,目前已有多個企業用戶在生產環境中使用,獲得了用戶的一致好評,Github社區star數突破3000。架構

  • 2012 年,Sentinel 誕生於阿里巴巴集團內部,主要功能爲入口流量控制;
  • 2013 - 2018 年,Sentinel 在阿里巴巴集團內部迅速發展,成爲基礎技術模塊,覆蓋了全部的核心場景。Sentinel 也所以積累了大量的流量控制場景以及生產實踐;
  • 2018 年7月,Sentinel 正式開源,首個版本(0.1.0)即生產可用;
  • 2018 年9月,Sentinel 的重要里程碑版本 0.2.0 發佈,帶來多項全新特性,同時已有外部企業用戶在生產環境中使用;
  • 2018 年10月末,Sentinel 進入 CNCF Landscape;Sentinel 的里程碑版本 1.3.0-GA 發佈,重要的生產可用版本。

Sentinel 的開源生態很是普遍,其針對經常使用的框架和庫進行了適配,包括 Web Servlet、Dubbo、Spring Cloud和gRPC 等,用戶只需引入相應依賴並進行簡單配置便可快速接入 Sentinel。同時,Sentinel 動態規則源針對常見的配置中心和遠程存儲進行適配,目前已支持 Nacos、ZooKeeper、Apollo、Redis 等多種動態規則源,能夠覆蓋到不少的生產場景。將來,Sentinel 還會對更多經常使用框架和配置中心進行適配,覆蓋更普遍的場景。框架

 

1540792751646_9b60c907_c52c_4ce2_9bd5_414919f07e4c

那麼 Sentinel 做爲生產可用的流量控制框架,都有哪些吸引人的特性呢?分佈式

輕量級

Sentinel 做爲一個功能完備的高可用流量控制框架,其核心 sentinel-core 沒有任何多餘依賴,打包後只有 200 KB,很是輕量級,用戶能夠放心地引入 sentinel-core 而不需擔憂依賴問題。同時,引入 Sentinel 帶來的性能損耗很是小,單機 QPS 不太大的時候損耗幾乎能夠忽略不計(單機 4.3W QPS 的損耗約爲 2.36%),所以也無需擔憂 Sentinel 影響線上業務性能的問題。性能

 

1540796176928_17f11ad3_de1c_4d92_a2ff_735e029c02dd

易用的控制檯

Sentinel 控制檯提供強大的實時監控和規則配置管理能力,用戶能夠很是方便地:阿里雲

  • 直觀地查看不一樣應用、不一樣資源的實時監控數據

1540802361844_a47639b7_f393_4455_a927_07edbed5f617_1_

  • 查看當前的資源調用鏈路以及實時的調用數據

 

1540802368479_264a7e2e_3c0b_432a_9a88_350401cd9e6c

  • 配置流控規則、降級規則、系統保護規則、熱點規則、受權規則

 

1540802374948_0c067d75_f489_40c3_acf4_593ac81789b9

若用戶在生產環境中使用了動態規則源,只需對控制檯進行少許的改造便可在生產環境中使用 Sentinel 控制檯,能夠參考 在生產環境中使用 Sentinel 控制檯 一文。spa

專業的流量控制

Sentinel 提供多個方面的專業流控能力來保障服務的穩定性:3d

  • 多維度的流量控制:流量是實時的、不肯定的,所以咱們須要對實時到來的不規則的流量進行必定的控制。Sentinel 從資源粒度、運行的指標、資源的調用關係、控制效果等多個維度提供流量控制的能力;
  • 服務的熔斷降級:Sentinel 從多個方面提供對不穩定服務降級的能力,能夠及時熔斷不穩定的服務(如響應時間很是長的服務),防止拖垮下游服務形成級聯錯誤;
  • 全局維度的系統保護:Sentinel 從全局的維度對系統負載進行保護,讓系統的入口流量和系統的負載達到一個平衡,保證系統在能力範圍以內處理最多的請求;
  • 黑白名單控制:根據資源的調用方來決定資源請求是否經過;
  • 熱點參數限流:對熱點數據的訪問進行限制,參數粒度的流量控制;

如何使用

Sentinel 提供多樣化的 SPI 接口用於提供擴展的能力。用戶能夠在用同一個 sentinel-core 的基礎上自行擴展接口實現,從而能夠方便地根據業務需求給 Sentinel 添加自定義的邏輯。目前 Sentinel 提供以下的擴展點:中間件

  • 初始化過程擴展:能夠添加自定義的一些初始化邏輯,如動態規則源註冊等;
  • Slot Chain 擴展:用於給 Sentinel 功能鏈添加自定義的功能並自由編排;
  • 指標統計擴展(StatisticSlot Callback):用於擴展StatisticSlot 指標統計相關的邏輯;
  • Transport 擴展:用於對心跳發送、監控 API Server 進行擴展。

 

1539165202133_64062dc7_88f1_45ac_8177_c29cd9ca0e9d

據悉,Sentinel 還將在後續版本中推出集羣限流功能、 API Gateway(如Netflix Zuul)和Service Mesh(如 Istio)全局流量控制等高級特性。

雙十一廣告:阿里雲雙十一1折拼團活動:已滿6人,都是最低折扣了
【滿6人】1核2G雲服務器99.5元一年298.5元三年 2核4G雲服務器545元一年 1227元三年
【滿6人】1核1G MySQL數據庫 119.5元一年
【滿6人】3000條國內短信包 60元每6月
參團地址:http://click.aliyun.com/m/1000020293/

做者: 中間件小哥
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索