栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloudAlibaba:Sentinel使用nacos进行持久化

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloudAlibaba:Sentinel使用nacos进行持久化

SpringCloudAlibaba:Sentinel使用nacos进行持久化 一、Sentinel持久化介绍

Sentinel自身就支持了多种不同的数据源来持久化规则配置,目前包括以下几种方式:

  • 文件配置
  • Nacos配置
  • ZooKeeper配置
  • Apollo配置

这里我们整合的配置中心Nacos存储限流规则。

二、准备工作

下面我们将同时使用到Nacos和Sentinel Dashboard,所以可以先把Nacos和Sentinel Dashboard启动起来。

默认配置下启动后,它们的访问地址(后续会用到)为:

  • Nacos:192.168.31.100:8848/nacos/
  • Sentinel Dashboard:192.168.31.100:8858/
三、整合nacos存储规则 1.pom文件

        
        
            com.alibaba.csp
            sentinel-datasource-nacos
            1.8.2
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
            2.2.1.RELEASE
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2.1.0.RELEASE
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    	
            org.springframework.boot
            spring-boot-starter-actuator
        
    
2.bootstrap.yml

这里必须为bootstrap格式,不然获取不到数据

server:
  port: 8005
spring:
  application:
    name: sentinel-nacos
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.31.100:8848   #这里是我linux地址
    sentinel:
      transport:
        #配置sentinel地址,端口
        dashboard: 192.168.31.100:8859   #这里是我linux地址
        #客户端IP(sentinel dashboard进行实时监控的主机ip地址)
        # 默认端口8719端口假如被占用会自动从8719开始依次+1扫描,直到找到未被占用的端口
        port: 8719
        client-ip: 172.100.20.220   #这里是我windows地址
      datasource:
        flow:
          nacos:
            server-addr: ${spring.cloud.nacos.discovery.server-addr}
            groupId: DEFAULT_GROUP
            dataId: ${spring.application.name}
            rule-type: flow
            data-type: json
        authority:
          nacos: 
            server-addr: ${spring.cloud.nacos.config.server-addr} 
            dataId: ${spring.application.name}-authority-rules
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: authority
          degrade:
            nacos: 
              server-addr: ${spring.cloud.nacos.config.server-addr}   
              dataId: ${spring.application.name}-degrade-rules
              groupId: DEFAULT_GROUP
              data-type: json
              rule-type: degrade
          param-flow:
            nacos: 
              server-addr: ${spring.cloud.nacos.config.server-addr}
              dataId: ${spring.application.name}-param-flow-rules
              groupId: DEFAULT_GROUP
              data-type: json
              rule-type: param-flow
          system:
            nacos: 
              server-addr: ${spring.cloud.nacos.config.server-addr}
              dataId: ${spring.application.name}-system-rules
              groupId: DEFAULT_GROUP
              data-type: json
              rule-type: system
#暴露自己的端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
3.nacos添加配置

这里的dataId,还有Group要和上面的bootstrap.yml的内容一样

json串

 [{
    "resource": "hello",
    "limitApp": "default",
    "grade": 1,
    "count": 1,
    "strategy": 0,
    "controlBehavior": 0,
    "clusterMode": false
}]

参数解析

resource:资源名称;
IimitApp:来源应用;
grade:國值类型,0表示线程数,1表示QPS;
count:单机阈值
strategy:流控模式,0表示直接,1表示关联,2表示链路
controlbehavior:流控效果,0表示快速失败,1表示 Warm Up,2表示排队等待;
cluster Mode:是否集群。
4.修改Controller
@RestController
@Slf4j
public class SentinelController {
    @GetMapping("/hello")
    @SentinelResource(value = "hello",blockHandler = "helloBlockHandler")
    public String hello(){
        log.info("hello");
        return "hello";
    }
    public String helloBlockHandler(BlockException e){
        return "CustomerController invoke blockHandler";
    }
}
5.启动主程序
http://127.0.0.1:8005/hello

6.测试

频繁访问后:

四、注意点

Sentinel控制台修改规则:仅存在于服务的内存中,不会修改Nacos中配置值,重启后恢复原来的值 Nacos控制台修改规则:Nacos持久化规则,服务的内存也同步更新

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号