天天看點

Sentinel 1.7.2 釋出,完善開源生态及擴充性

Sentinel 1.7.2 

正式釋出,帶來了 Logger SPI 擴充機制、Zuul 2.x 網關流控、SOFARPC 适配等多項特性和改進。下面我們來一起探索一下 Sentinel 1.7.2 的重要特性。

多樣化的适配子產品

到目前為止,Sentinel 已覆寫微服務、API Gateway 和 Service Mesh 三大闆塊的核心生态,同時多語言已推出 Java、C++、Go 三種語言的原生實作。

Sentinel 1.7.2 釋出,完善開源生态及擴充性

得益于社群的貢獻,Sentinel 1.7.2 帶來了更多的适配子產品:

  • Zuul 2.x 适配子產品:可以針對 Zuul 2.x 網關配置定制化的流控政策,流控粒度可以是路由次元以及自定義 API 分組次元。
  • SOFARPC 适配子產品:可以針對 SOFARPC provider/consumer 接口和方法配置規則,支援來源限流,支援配置 fallback 處理邏輯。

日志擴充機制

1.7.2 版本引入了全新的日志擴充機制,新增 Logger SPI 擴充點(目前僅針對 RecordLog 和 CommandCenterLog 生效)。使用者可以自定義 Logger 實作來适配項目中的日志子產品(如 slf4j、logback、log4j2 等)。Sentinel Core 預設的日志實作仍然基于 JDK logging,同時社群提供了 slf4j 适配子產品,使用者隻需引入 sentinel-logging-slf4j 子產品并在相應的日志配置檔案中針對 sentinelRecordLogger 和 sentinelCommandCenterLogger 進行配置即可,友善使用。

Slot SPI 擴充機制重構

Sentinel 各個特性都是由不同的 slot 組成的。在之前的版本中,slot 擴充是通過 SlotChainBuilder SPI 機制來實作的,這樣設計的初衷是讓使用者關注各 slot 的順序,顯式地編排 slot chain。但這種方式對于不同子產品分别擴充 slot 來說是不靈活的,同時對于大部分使用者來說其實不關心各個子產品的各個 slot 的順序。是以 1.7.2 版本我們對 slot 擴充機制進行了重構,将 ProcessorSlot 本身作為 SPI 進行擴充,每個 slot 通過 @SpiOrder 注解指定順序,進而可以友善地将不同子產品的 slot 組合起來。未來版本社群還會進一步強化 slot SPI 的擴充方式,使之具備任意插拔的能力。

其它特性與改進

  • Spring Web 适配子產品支援鍊路次元流控
  • 完善 sentinel-transport-simple-http 子產品,支援較大的 POST 請求
  • 完善規則 HTTP 方式推送的錯誤提示,檢測用戶端低版本 fastjson

    詳情請參考

     Release Notes ,歡迎大家使用并提出建議,同時歡迎大家一起參與後續版本的演進。