天天看點

Sentinel Go 0.2.0 釋出,完善易用性與開源生态

Sentinel

是阿裡巴巴開源的,面向分布式服務架構的流量控制元件,主要以流量為切入點,從限流、流量整形、熔斷降級、系統自适應保護等多個次元來幫助開發者保障微服務的穩定性。Sentinel 承接了阿裡巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺、冷啟動、消息削峰填谷、叢集流量控制、實時熔斷下遊不可用服務等,是保障微服務高可用的利器,原生支援 Java/Go/C++ 等多種語言,并且提供 Envoy 全局流控支援來為 Service Mesh 提供高可用防護的能力。

近期,

Sentinel Go 0.2.0

正式釋出,完善易用性與開源生态,新增 gRPC、Gin、Dubbo-go 等架構的适配,新增動态檔案資料源支援。在 0.2.0 版本中,使用者隻需要簡單地對 Sentinel 進行初始化,并且為架構配置 Sentinel 的适配即可快速接入。比如針對 Gin Web 服務,我們隻需要以下幾步即可快速接入 Sentinel:

1、在服務啟動的時候對 Sentinel 進行初始化:

import (
    sentinel "github.com/alibaba/sentinel-golang/api"
)

func init() {
    err := sentinel.InitDefault()
    if err != nil {
        log.Fatal(err)
    }
}           

2、在 Gin 的初始化代碼中引入 SentinelMiddleware:

import (
    sentinelPlugin "github.com/alibaba/sentinel-golang/adapter/gin" 
    "github.com/gin-gonic/gin"
)

r := gin.New()
// Sentinel 會對每個 API route 進行統計,資源名稱類似于 GET:/foo/:id
// 預設的限流處理邏輯是傳回 429 (Too Many Requests) 錯誤碼,支援配置自定義的 fallback 邏輯
r.Use(sentinelPlugin.SentinelMiddleware())           

3、配置流控規則。可以建立動态檔案資料源,通過檔案配置規則,或寫死配置規則。

詳細特性清單請參考

Release Notes

,歡迎大家使用并提出建議。

同時,社群也在完善更多的特性和整合子產品,如 etcd 資料源、熔斷降級等。Sentinel Go 版本的演進離不開社群的貢獻,我們非常歡迎大家持續參與貢獻,一起來主導未來版本的演進。若您有意願參與貢獻,可以參考

貢獻指南

來入門,同時也歡迎聯系我們加入 Sentinel 貢獻小組認領任務(Sentinel 開源讨論釘釘群:30150716)。積極參與貢獻的開發者我們會重點關注,有機會被提名為 Committer。Now start hacking!