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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章