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

摘要: Sentinel 阿里中間件團隊開源的,面向分佈式服務架構的輕量級流量控制框架,主要以流量爲切入點,從流量控制、熔斷降級、系統負載保護等多個維度來幫助用戶保護服務的穩定性。 近日,阿里中間件開源組件Sentinel 發佈首個官方推薦可生產版本:1.3.0-GA ,該版本包括 Sentinel 控制檯功能的完善和一些 bug 修復,以及其它的產品改進,是一個具備里程碑意義的生產可用版本。架構

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 還會對更多經常使用框架和配置中心進行適配,覆蓋更普遍的場景。spa

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

輕量級

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

易用的控制檯

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

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

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

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

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

專業的流量控制

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

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

如何使用

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

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

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

原文連接

相關文章
相關標籤/搜索