隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來越重要。Sentinel是阿里巴巴開源的,面向分布式服務(wù)架構(gòu)的流量控制組件,主要以流量為切入點(diǎn),從限流、流量整形、熔斷降級、系統(tǒng)自適應(yīng)保護(hù)等多個維度來幫助開發(fā)者保障微服務(wù)的穩(wěn)定性。Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺、冷啟動、消息削峰填谷、集群流量控制、實(shí)時熔斷下游不可用服務(wù)等,是保障微服務(wù)高可用的利器。
Sentinel 開源初期主要面向 Java 微服務(wù),同時也在朝著多語言擴(kuò)展的方向不斷探索。去年中旬,Sentinel 推出C++ 原生版本,同時針對 Service Mesh 場景,Sentinel 也推出了Envoy 集群流量控制的支持,可以解決 Service Mesh 架構(gòu)下多語言限流的問題。
近期,Sentinel 多語言俱樂部又迎來新的一員 Sentinel Golang首個原生版本 0.1.0 正式發(fā)布,為 Go 語言的微服務(wù)提供流控降級、系統(tǒng)保護(hù)等特性的原生支持。開發(fā)者只需簡單的幾步即可快速接入 Sentinel,享受到以下能力:
精確限制接口級別的 QPS,防止打垮核心接口。
削峰填谷,激增的請求排隊等待處理。
自適應(yīng)的系統(tǒng)維度流量保護(hù),結(jié)合 load 等系統(tǒng)指標(biāo)以及服務(wù)實(shí)時的請求量和響應(yīng)時間來自動拒絕多余的流量,盡可能地提升吞吐量的同時保證服務(wù)不掛。
實(shí)時的秒級監(jiān)控能力,通過監(jiān)控日志了解系統(tǒng)的實(shí)時流量情況。
更多特性介紹可以參考Sentinel Golang 文檔。
在接下來的版本中,Sentinel Golang 將會陸續(xù)推出熔斷降級、熱點(diǎn)參數(shù)限流等一系列的穩(wěn)定性保障能力。同時,社區(qū)也會陸續(xù)提供與常用的框架和云原生組件的整合模塊,如原生 Istio Service Mesh 整合,方便開發(fā)者在各種云原生場景下快速接入 Sentinel。社區(qū)后面也計劃提供與 Prometheus 等云原生監(jiān)控組件的整合,可以利用 Sentinel 的指標(biāo)統(tǒng)計數(shù)據(jù)進(jìn)行接口級別的監(jiān)控。
Sentinel Golang 的誕生離不開社區(qū)的貢獻(xiàn),在此感謝 @louyuting 和 @gorexlv 兩位社區(qū)開發(fā)者在 Sentinel Go 版本演進(jìn)中的積極貢獻(xiàn)。我們非常歡迎大家持續(xù)參與社區(qū)貢獻(xiàn),一起來參與未來版本的演進(jìn)。若您有意愿參與社區(qū)貢獻(xiàn),可以參考貢獻(xiàn)指南來入門,同時也歡迎聯(lián)系我們加入 Sentinel 核心貢獻(xiàn)小組認(rèn)領(lǐng)任務(wù)(Sentinel 開源討論釘釘群:21977771)。積極參與貢獻(xiàn)的開發(fā)者我們會重點(diǎn)關(guān)注,有機(jī)會被提名為 Committer。Now start hacking!