天天看點

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

一 Sentinel的作用

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

二 下載下傳Sentinel

官網下載下傳位址:https://github.com/alibaba/Sentinel/releases,選擇下載下傳目前穩定版,這裡下載下傳的是sentinel-dashboard-1.7.1.jar。

三 Sentinel安裝和啟動

(1). 将下載下傳的sentinel-dashboard-1.7.1.jar上傳到伺服器192.168.1.7,通過指令啟動,

nohup java -jar sentinel-dashboard-1.7.1.jar >log.file 2>&1 &

(2). 将192.168.1.1,192.168.1.2,192.168.1.3伺服器上的使用者微服務,商品微服務,訂單微服務,網關全部啟動。

(3).通路 http://192.168.1.7:8080 進入到sentinel管理控制台

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

第一次進來點簇點鍊路裡面是空白的,需要我們通路一次微服務才能看見,通路下訂單微服務http://192.168.1.13/order/save?userId=1&productId=1&amount=1&token=1

再次打開簇點鍊路

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

四 流控規則

因為是測試,這個做個最簡單的限流,1秒鐘隻允許下1次訂單(/order/save),如超過次數1,就直接快速失敗,報預設錯誤。

選擇訂單下單微服務,點流控

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷
無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷
無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

通路下訂單微服務http://192.168.1.13/order/save?userId=1&productId=1&amount=1&token=1,快速點選重新加載此頁,會出現錯誤Blocked by Sentinel (flow limiting)

五 規則持久化

一旦我們重新開機應用,sentinel規則消失,生産環境需要将将限流規則持久進Nacos儲存。

1.yml檔案添加Nacos資料源配置

打開訂單微服務yml檔案,添加

datasource:
        ds1:
          nacos:
            server-addr: 192.168.1.14:8848
            dataId: cloudalibaba-sentinel-service
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow
           
無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

2.通路http://192.168.1.14:8848進入Nacos控制台管理,配置管理-配置清單,點選+号。

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷
無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷
無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷

3.通路http://192.168.1.7:8080,打開流控規則,會看到剛才在Nacos裡面配置的規則

無廢話7小時學會使用Spring Cloud Alibaba(6)Sentinel流控熔斷