中山如何制作网站,计算机前端好找工作吗,做网站常用工具,汕头建站方案Nacos配置中心总结
Nacos配置文件的加载顺序和优先级
加载顺序
nacos作为配置中心时#xff0c;需要在bootstrap.yml文件中添加nacos config相关的配置#xff0c;这样系统启动时就能先去拉取nacos server上的配置了。拉取过来后会和本地配置文件进行合并。
bootstrap.ym…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配置文件读取规则
根据namespace、group、data-id三个配置去找文件会从nacos中读取多个配置文件 [spring.application.name]-[spring.profiles.active].yaml例如userservice-dev.yaml[spring.application.name].yaml例如userservice.yaml 不管profile怎么变化一定会加载[spring.application.name].yaml文件所以多个环境共享的配置可以写入这个文件中上面的示例没有写data-id那么最后找到的是指定namespace和指定group下的consumerservice-dev.yaml配置文件如果指定了data-id那么就是读取指定配置文件了不过在这种场景下一般不会指定data-id当我们使用nacos存储sentinel配置文件的时候会指定data-id。
配置文件的优先级
Nacos整合Sentinel
引入依赖特别是引入sentinel-datasource-nacos依赖 !--nacos服务发现--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--Nacos配置管理依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency!--以nacos作为sentinel数据源的依赖--dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-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, // 熔断时长单位为 sstatIntervalMs: 1000 // 统计时长单位为 ms如 60*1000 代表分钟级}
]
热点参数配置
[{resource: /test1,grade: 1, // 限流模式QPS 模式不可更改paramIdx: 0, // 参数索引count: 13, // 单机阈值durationInSec: 6, // 统计窗口时长clusterMode: false, // 是否集群 默认falsecontrolBehavior: 0, // 流控效果支持快速失败和匀速排队模式limitApp: default,// 高级选项paramFlowItemList: [{classType: int, // 参数类型count: 222, // 限流阈值object: 2 // 参数值}]}
]
系统参数配置
[{avgRt: 1, // RThighestCpuUsage: -1, // CPU 使用率highestSystemLoad: -1, // LOADmaxThread: -1, // 线程数qps: -1, // 入口 QPScount: 55, // 阈值在CPU使用率中是百分比}
]
授权规则配置
[{resource: sentinel_spring_web_context,limitApp: /test,strategy: 0 // 授权类型(0代表白名单1代表黑名单。)}
]
参考
Sentinel官网Sentinel结合Nacos实现配置持久化(全面