Sentinel規則基於Apollo(阿波羅)持久化

小木鈴發表於2020-10-23

上一篇我們介紹了Sentinel 無需程式碼一行配置搞定限流簡單用法

但是我們發現一個問題,就是應用重啟後,規則就失效了,我們需要再建立~

如果一個應用有幾百個介面的話~!!!!

通過官網可以找到Sentinel目前支援以下Sentinel動態規則,我們以apollo為例做個講解:

首先我們引入jar


        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-apollo</artifactId>
        </dependency>

再加入以下apollo引數:


#sentinal
spring.cloud.sentinel.transport.dashboard = localhost:8080

# sentinel datasource apollo
# apollo namespaceName一般就是application
spring.cloud.sentinel.datasource.ds.apollo.namespaceName = application
# apollo 儲存規則的key,同最下面配置一致即可
spring.cloud.sentinel.datasource.ds.apollo.flowRulesKey = sentinel.flowRules
# sentinel 規則型別,不可為空。
spring.cloud.sentinel.datasource.ds.apollo.rule-type = flow
# 自己定義的規則,注意key要和flowRulesKey一致
sentinel.flowRules = [\n  {\n    "resource": "/v1/resource/purch_order/page",\n    "limitApp": "default",\n    "grade": 1,\n    "count": 1,\n    "strategy": 0,\n    "controlBehavior": 0,\n    "clusterMode": false\n  },\n  {\n    "resource": "/v1/resource/order/refund/page",\n    "limitApp": "default",\n    "grade": 1,\n    "count": 1,\n    "strategy": 0,\n    "controlBehavior": 0,\n    "clusterMode": false\n  }\n]

再啟動就自動裝載了!

相關文章