日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速体验 Sentinel 集群限流功能,只需简单几步

發(fā)布時間:2025/3/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速体验 Sentinel 集群限流功能,只需简单几步 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


? Pic by Alibaba Tech on Facebook

集群限流 可以限制某個資源調(diào)用在集群內(nèi)的總 QPS,并且可以解決單機流量不均導(dǎo)致總的流控效果不佳的問題,是保障服務(wù)穩(wěn)定性的利器。

Sentinel 從 1.4.0 版本開始提供集群流控特性,但使用 Sentinel 集群限流需要對一系列的動態(tài)數(shù)據(jù)源進(jìn)行相關(guān)配置,并且需要對開源控制臺進(jìn)行一些改造,有一定的使用成本。為了大家更好地理解集群流控并快速地使用,我們提供了云上版本的 Sentinel 集群限流控制臺示例。只需要簡單的幾步即可快速接入 AHAS Sentinel 集群限流控制臺,無需手動配置動態(tài)數(shù)據(jù)源。

注:本控制臺示例位于云上環(huán)境,需要使用阿里云賬號登錄。

  • 引入依賴
  • 我們只需要在 Maven 中引入以下依賴:

    <dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>ahas-sentinel-client</artifactId>
    <version>1.1.0</version>
    </dependency>
    ahas-sentinel-client 中會包含 sentinel-core 以及集群限流等必要依賴(基于 Sentinel 1.4.1 版本),以及連接阿里云 AHAS Sentinel 控制臺所需模塊(鑒權(quán)、通信等)。同時 ahas-sentinel-client 實現(xiàn)了 push 模式的數(shù)據(jù)源并且會自動注冊所有規(guī)則配置和集群配置數(shù)據(jù)源,在控制臺推送即可實時生效:

    若之前接入了開源 Sentinel 控制臺,則需要將相關(guān)的通信依賴(如 sentinel-transport-simple-http 或 sentinel-transport-netty-http)替換成此依賴,否則將無法正確連接 AHAS Sentinel 控制臺。若希望從 AHAS Sentinel 控制臺切換到開源 Sentinel 控制臺,只需要將依賴替換回來,修改一下啟動參數(shù)即可。

    注意:ahas-sentinel-client 1.1.x 僅兼容 Sentinel 1.4.1 及以上版本。

  • 開通 AHAS,獲取啟動參數(shù)
  • 引入依賴后,我們需要到 阿里云控制臺 開通 AHAS 功能(免費)。可以根據(jù) 開通 AHAS 文檔 和 Sentinel 流控降級 Demo 快速入門 里面的指引進(jìn)行開通。注意若應(yīng)用運行在非阿里云 ECS 環(huán)境或本地,需要在左上角選擇切換 公網(wǎng) 環(huán)境。

    開通后我們可以點擊左側(cè)側(cè)邊欄的 流控降級,進(jìn)入 Sentinel 控制臺應(yīng)用總覽頁面。在頁面右上角,單擊 應(yīng)用接入,選擇 Java SDK 接入頁簽,到 配置啟動參數(shù) 頁簽?zāi)玫叫枰?JVM 啟動參數(shù)(詳情請參考 SDK 接入文檔),類似于:

    -Dproject.name=AppName -Dahas.license=<License>
    其中 project.name 代表應(yīng)用名(會顯示在控制臺),ahas.license 代表自己的授權(quán) license。

    注意:若應(yīng)用運行在非阿里云 ECS 環(huán)境或本地,需要在左上角切換到 公網(wǎng) 環(huán)境。

    詳細(xì)接入步驟可以參考 AHAS Sentinel 控制臺文檔。

  • 啟動應(yīng)用實例
  • 接下來我們就可以在本地啟動應(yīng)用了,啟動應(yīng)用時需要加上拿到的啟動參數(shù)。若要在本地體驗集群限流功能,需要在本機啟動多個應(yīng)用實例,并額外添加 -Dcsp.sentinel.log.use.pid=true 參數(shù)(用于區(qū)分同個應(yīng)用多個實例)。啟動之后,我們就可以在對應(yīng)應(yīng)用的機器列表頁面看到接入的機器了:

  • 分配 Token Server
  • 集群限流中共有兩種身份:

    Token Client 即集群流控客戶端,用于向所屬 Token Server 通信請求 token。集群限流服務(wù)端會返回給客戶端結(jié)果,決定是否限流。Sentinel 集群流控的通信底層采用 Netty 實現(xiàn)。
    Token Server 即集群流控服務(wù)端,處理來自 Token Client 的請求,根據(jù)配置的集群規(guī)則判斷是否應(yīng)該發(fā)放 token(是否允許通過)。
    本示例中 Token Server 模式為嵌入模式,即作為內(nèi)置的 Token Server 與應(yīng)用在同一進(jìn)程中啟動,無需單獨部署:

    我們需要通過特定的 URL 來進(jìn)入 AHAS 集群流控 Demo 頁面(其中 appName 后面的參數(shù)替換成我們的應(yīng)用名):

    https://ahas.console.aliyun.c...

    然后我們就進(jìn)入到了集群流控 Token Server 列表頁面:

    我們可以點擊右上角的 新增 Token Server 按鈕來新增 Token Server 并執(zhí)行分配。我們首先需要在新增 Token Server 對話框內(nèi)選擇一臺 Token Server,并配置該 Token Server 的端口以及最大的 QPS 配額(用于限制資源使用,防止嵌入模式下影響應(yīng)用本身)。接下來我們就在下面的選擇框中為該 Token Server 分配 Token Client。在上面圖中的例子中,我們的應(yīng)用共有兩個實例,其中一個指定為 Token Server,另一個指定為 Token Client。選擇完成后點擊“保存”按鈕保存分配。

    保存成功后,我們就能在 Token Server 列表頁面看到剛剛分配的 Token Server 了:

    點擊左側(cè)的下拉按鈕,可以看到該 Token Server 和所管理的 Token Client 的實時信息:

  • 配置規(guī)則,查看效果
  • 接下來我們?nèi)チ骺匾?guī)則頁面給我們的應(yīng)用配置流控規(guī)則。先對某個資源配置普通的流控規(guī)則,單機 QPS 閾值設(shè)置為 10:

    然后分別持續(xù)請求兩臺機器對應(yīng)的資源,可以在監(jiān)控頁面看到總 QPS 為 20(每個單機 QPS 各為 10):

    接下來我們編輯剛才新建的規(guī)則,開啟集群模式,閾值模式選擇“總體閾值”,代表對該資源限制集群內(nèi)的調(diào)用總量為 10。保存規(guī)則:

    等待一段時間,我們可以在監(jiān)控頁面看到資源的總 QPS 被限到了 10:

    有關(guān) Sentinel 集群流控的更多特性和用法,可以參考 Sentinel 集群流控文檔 以及之前的集群流控的文章。我們同時提供了嵌入模式下應(yīng)用配置集群流控配置源的 Demo,可以參考:sentinel-demo-cluster-embedded。

    本文作者:
    宿何,社區(qū)昵稱sczyh30,阿里巴巴高可用架構(gòu)組開發(fā)工程師,目前主要負(fù)責(zé)Sentinel 開源項目的開發(fā)和社區(qū)維護(hù)。

    總結(jié)

    以上是生活随笔為你收集整理的快速体验 Sentinel 集群限流功能,只需简单几步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。