建设网站 宣传平台,漳州网站建设网站运营,西安网页设计培训哪里有,律师事务所手机网站Sentinel集成文档
Sentinel控制台
Sentinel本身不支持持久化#xff0c;项目通过下载源码改造后#xff0c;将规则配置持久化进nacos中#xff0c;sentinel重启后#xff0c;配置不会丢失。
架构图#xff1a; 改造步骤#xff1a;
接着我们就要改造Sentinel的源码。…Sentinel集成文档
Sentinel控制台
Sentinel本身不支持持久化项目通过下载源码改造后将规则配置持久化进nacos中sentinel重启后配置不会丢失。
架构图 改造步骤
接着我们就要改造Sentinel的源码。因为官网提供的Sentinel的jar是原始模式的所以需要改造所以我们需要拉取源码下来改造一下然后自己编译jar包。
源码地址https://github.com/alibaba/Sentinel
拉取下来之后导入到IDEA中然后我们可以看到以下目录结构。 首先修改sentinel-dashboard的pom.xml文件 第二步把test目录下的四个关于Nacos关联的类移到rule目录下。 接着NacosConfig添加Nacos的地址配置。 最关键的是FlowControllerV1的改造这是规则配置的增删改查的一些接口。
把移动到rule目录下的两个服务添加到FlowControllerV1类中。
Autowired
Qualifier(flowRuleNacosProvider)
private DynamicRuleProviderListFlowRuleEntity ruleProvider;
Autowired
Qualifier(flowRuleNacosPublisher)
private DynamicRulePublisherListFlowRuleEntity rulePublisher; 添加私有方法publishRules()用于推送配置
private void publishRules(/*NonNull*/ String app) throws Exception { ListFlowRuleEntity rules repository.findAllByApp(app); rulePublisher.publish(app, rules);
}
修改apiQueryMachineRules()方法。 修改apiAddFlowRule()方法。 修改apiUpdateFlowRule()方法。 修改apiDeleteFlowRule()方法。 Sentinel控制台的项目就改造完成了用于生产环境就编译成jar包运行如果是学习可以直接在IDEA运行。 附件包含已经改造好的包直接修改配置文件中nacos的配置即可使用。
客户端工程fssc或者console
引入pom
!--sentinel nacos-- dependency groupIdcom.alibaba.csp/groupId artifactIdsentinel-datasource-nacos/artifactId version1.8.5/version /dependency !--sentinel-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-sentinel/artifactId version2021.1/version /dependency
添加配置
spring: cloud: sentinel: enabled: true # 是否开启。默认为 true 开启 eager: true # 是否饥饿加载。默认为 false 关闭 transport: #配置sentinel地址,端口 dashboard: 127.0.0.1:8080 #这里是sentinel控制台地址 #客户端IP(sentinel dashboard进行实时监控的主机ip地址) # 默认端口8719端口假如被占用会自动从8719开始依次1扫描直到找到未被占用的端口 port: 8725
# client-ip: 192.168.30.200 #这里是我windows地址 datasource: flow: nacos: server-addr: ${spring.cloud.nacos.discovery.server-addr} namespace: sentinel_rule dataId: cai-demo-flow-rules groupId: SENTINEL_GROUP # 规则类型取值见 # org.springframework.cloud.alibaba.sentinel.datasource.RuleType rule-type: flow data-type: json
添加注解配置类 添加统一异常处理 至此单机模式集成完成 集群改造
集群只需要修改客户端即可
添加集群pom
dependency groupIdcom.alibaba.csp/groupId artifactIdsentinel-cluster-client-default/artifactId version1.8.5/version /dependency dependency groupIdcom.alibaba.csp/groupId artifactIdsentinel-cluster-server-default/artifactId version1.8.5/version /dependency
添加InitFunc实现类在sentinel源码demo可以找到 继续添加实体类和常量类 在resource中添加sentinel.properties配置文件主要解决DemoClusterInitFunc类中无法读取配置文件的问题
继续添加SPI文件 至此集群改造完成