1.设计思路
在开源的sentinel-dashbaord中,添加sentinel-datasource-nacos依赖。
@startumlstart:sentinel-dashbaord中添加规则;:规则自行同步到nacos中;:服务中sentinel客户端监听nacos中的规则数据并保存在内存中;:服务上报规则数据到sentinel;stop@enduml
2.数据表象
业务系统
在sentinel-dashbaord中配置流控规则后,会自动在nacos创建规则数据,如下图:

网关系统
在sentinel-dashbaord中配置流控规则后,会自动在nacos创建规则数据,如下图:

3.网关配置
#gwflow 网关流量spring.cloud.sentinel.datasource.gwflow.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.gwflow.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.gwflow.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.gwflow.nacos.dataId=${spring.application.name}-gw-flow-rulesspring.cloud.sentinel.datasource.gwflow.nacos.ruleType=gw_flow#gwapi 网关api流控spring.cloud.sentinel.datasource.gwapi.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.gwapi.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.gwapi.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.gwapi.nacos.dataId=${spring.application.name}-gw-api-group-rulesspring.cloud.sentinel.datasource.gwapi.nacos.ruleType=gw_api_group
此配置会统一在sentinel-common.properties中配置。
如果需要定制化,可在服务的nacos配置中覆盖。
4.服务配置
#flow 流控规则spring.cloud.sentinel.enabled=truespring.cloud.sentinel.datasource.flow.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.flow.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.flow.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.flow.nacos.dataId=${spring.application.name}-flow-rulesspring.cloud.sentinel.datasource.flow.nacos.ruleType=flow#degrade 降级规则spring.cloud.sentinel.datasource.degrade.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.degrade.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.degrade.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.degrade.nacos.dataId=${spring.application.name}-degrade-rulesspring.cloud.sentinel.datasource.degrade.nacos.ruleType=degrade#system 系统规则spring.cloud.sentinel.datasource.system.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.system.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.system.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.system.nacos.dataId=${spring.application.name}-system-rulesspring.cloud.sentinel.datasource.system.nacos.ruleType=system#authority 授权规则spring.cloud.sentinel.datasource.authority.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.authority.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.authority.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.authority.nacos.dataId=${spring.application.name}-authority-rulesspring.cloud.sentinel.datasource.authority.nacos.ruleType=authority#param 热点规则spring.cloud.sentinel.datasource.param.nacos.serverAddr=${server-addr}:8848spring.cloud.sentinel.datasource.param.nacos.namespace=${nacos.namespace}spring.cloud.sentinel.datasource.param.nacos.groupId=SENTINEL_GROUPspring.cloud.sentinel.datasource.param.nacos.dataId=${spring.application.name}-param-flow-rulesspring.cloud.sentinel.datasource.param.nacos.ruleType=param_flow
此配置会统一在sentinel-common.properties中配置。
如果需要定制化,可在服务的nacos配置中覆盖。
