当前位置: 首页> 房产> 家装 > 公司网站首页布局图_简述软件开发过程_seo入门培训_一诺网络推广公司

公司网站首页布局图_简述软件开发过程_seo入门培训_一诺网络推广公司

时间:2025/7/12 10:43:10来源:https://blog.csdn.net/wsb_2526/article/details/144812613 浏览次数:1次
公司网站首页布局图_简述软件开发过程_seo入门培训_一诺网络推广公司

Nacos配置中心总结

Nacos配置文件的加载顺序和优先级

加载顺序

nacos作为配置中心时,需要在bootstrap.yml文件中添加nacos config相关的配置,这样系统启动时就能先去拉取nacos server上的配置了。拉取过来后会和本地配置文件进行合并。

bootstrap.yml文件

spring:cloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yamlnamespace: c4829fb4-fbd9-475e-a39d-071f26064e7bgroup: DEFAULT_GROUPusername: nacospassword: nacosprofiles:active: devapplication:name: consumerservice

配置文件读取规则

  1. 根据namespace、group、data-id三个配置去找文件
  2. 会从nacos中读取多个配置文件:
    1. [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml
    2. [spring.application.name].yaml,例如:userservice.yaml
  3. 不管profile怎么变化,一定会加载[spring.application.name].yaml文件,所以多个环境共享的配置可以写入这个文件中
  4. 上面的示例没有写data-id,那么最后找到的是指定namespace和指定group下的consumerservice-dev.yaml配置文件,如果指定了data-id那么就是读取指定配置文件了,不过在这种场景下一般不会指定data-id,当我们使用nacos存储sentinel配置文件的时候会指定data-id。

配置文件的优先级
在这里插入图片描述

Nacos整合Sentinel

引入依赖,特别是引入sentinel-datasource-nacos依赖

        <!--nacos服务发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--Nacos配置管理依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!--以nacos作为sentinel数据源的依赖--><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency>

指定sentinel的规则配置文件

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848cluster-name: HZnamespace: c4829fb4-fbd9-475e-a39d-071f26064e7b  #命名空间idgroup: testgroup1username: nacospassword: nacosloadbalancer:nacos:enabled: true #开启负载均衡openfeign:compression:request:enabled: true #开启请求压缩min-request-size: 2048  #设置触发压缩的大小下限,此处也是默认值mime-types: text/html,application/xml,application/json #设置压缩的数据类型,此处也是默认值response:enabled: true #开启响应压缩okhttp:enabled: truesentinel:transport:dashboard: localhost:8080web-context-unify: false   #是否统一web上下文,默认为false;如果配置为 true,则对所有请求应用统一的流控和熔断规则;如果配置为 false,则对每个请求的上下文信息进行独立处理,并针对每个 URL 或资源配置流控和熔断规则eager: true       # 是否在启动时就初始化所有规则datasource:      #配置sentinel规则持久化到nacosflux-control: #流控管理,名称可以自定义nacos:data-id: consumerservice-sentinel-dev.json #sentinel规则配置文件的dataIdnamespace: c4829fb4-fbd9-475e-a39d-071f26064e7bgroup-id: DEFAULT_GROUPserver-addr: 127.0.0.1:8848  #nacos地址rule-type: flow #指定配置文件里的是哪种规则degrade-control:  #降级规则nacos:data-id:  namespace: c4829fb4-fbd9-475e-a39d-071f26064e7bgroup-id: DEFAULT_GROUPserver-addr: 127.0.0.1:8848rule-type: degradeparam-flow-rule:  #热点规则nacos:data-id:namespace: c4829fb4-fbd9-475e-a39d-071f26064e7bgroup-id: DEFAULT_GROUPserver-addr: 127.0.0.1:8848rule-type: param-flow

流控规则配置

[{"resource": "/test", // 资源名"limitApp": "default", // // 针对来源,若为 default 则不区分调用来源"grade": 1, // 限流阈值类型(1:QPS;  0:并发线程数)"count": 1, // 阈值"clusterMode": false, // 是否是集群模式"controlBehavior": 0, // 流控效果 (0:快速失败;  1:Warm Up(预热模式);  2:排队等待)"strategy": 0,  // 流控模式(0:直接; 1:关联; 2:链路)"warmUpPeriodSec": 10, // 预热时间(秒,预热模式需要此参数)"maxQueueingTimeMs": 500, // 超时时间(排队等待模式需要此参数)"refResource": "rrr" // 关联资源、入口资源(关联、链路模式)}.
]

在nacos中创建对应的配置文件,在yaml文件中使用data-id指定配置文件
在这里插入图片描述

熔断降级配置

[{"resource": "/degrade","grade": 0, // 熔断策略,支持慢调用比例(0),异常比例(1),异常数(2)策略"count": 1000, // 慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用,单位ms);异常比例/异常数模式下为对应的阈值"slowRatioThreshold": 0.1,// 慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)"minRequestAmount":  10, //熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断"timeWindow": 10, // 熔断时长,单位为 s"statIntervalMs": 1000 // 统计时长(单位为 ms),如 60*1000 代表分钟级}
]	

热点参数配置

[{"resource": "/test1","grade": 1, // 限流模式(QPS 模式,不可更改)"paramIdx": 0, // 参数索引"count": 13, // 单机阈值"durationInSec": 6, // 统计窗口时长"clusterMode": false, // 是否集群 默认false"controlBehavior": 0, // 流控效果(支持快速失败和匀速排队模式)"limitApp": "default",// 高级选项"paramFlowItemList": [{"classType": "int", // 参数类型"count": 222, // 限流阈值"object": "2" // 参数值}]}
]

系统参数配置

[{"avgRt": 1, // RT"highestCpuUsage": -1, // CPU 使用率"highestSystemLoad": -1, // LOAD"maxThread": -1, // 线程数"qps": -1, // 入口 QPS"count": 55, // 阈值,在CPU使用率中是百分比}
]

授权规则配置

[{"resource": "sentinel_spring_web_context","limitApp": "/test","strategy": 0 // 授权类型(0代表白名单;1代表黑名单。)}
]

参考

  1. Sentinel官网
  2. Sentinel结合Nacos实现配置持久化(全面)
关键字:公司网站首页布局图_简述软件开发过程_seo入门培训_一诺网络推广公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: