当前位置: 首页 > news >正文

免费名字设计成图案seo教学实体培训班

免费名字设计成图案,seo教学实体培训班,杭州app开发公司哪家好,一级域名网站1、前言 我们在进行分布式系统的开发中#xff0c;无论是在开发环境还是发布环境#xff0c;配置一定不能是内存形式的#xff0c;因为系统可能会在中途宕机或者重启#xff0c;所以如果放在内存中#xff0c;那么配置在服务停到就是就会消失#xff0c;那么此时就需要重…1、前言 我们在进行分布式系统的开发中无论是在开发环境还是发布环境配置一定不能是内存形式的因为系统可能会在中途宕机或者重启所以如果放在内存中那么配置在服务停到就是就会消失那么此时就需要重新再进行配置一个两个服务还好如果服务一多那就是一件很费时费力的事情了。 所以我们还是需要把我们的配置信息持久化到配置中心这也是目前主流的方式。 分布式系统中常见的配置中心有Nacos、ZooKeeper、Apollo、Consul等等 本文中使用Nacos作为配置中心和服务中心。 配置持久化主要有以下原因 数据安全性持久化配置可以保证在系统或者应用重启后重要的配置数据不会丢失可以确保数据的安全性和稳定性。数据可恢复性持久化配置可以在数据丢失或者损坏时进行恢复保证系统的正常运行。支持分布式系统对于分布式系统来说配置的持久化可以确保各个节点的一致性避免因为节点的临时变动导致的问题。可扩展性持久化配置易于进行扩展和修改可以适应不同的应用场景和业务需求。提高系统性能通过实现配置的持久化可以有效减少读取配置文件的次数提高系统的运行效率。降低耦合性持久化配置可以使得应用和配置之间松散耦合方便系统的维护和升级。 2、微服务整合Sentinel和Nacos 在分布式的系统中微服务是最基本的要求所以我们就需要对微服务进行服务注册发现、配置和流控。 2.1、引入依赖 在微服务整合sentinel和Nacos是需要父pom中已经引入了spring-cloud-alibaba-dependencies这个依赖这个依赖中管理里当前版本中所有组件的版本信息。切记在微服务中要特别注意各种依赖的版本。 !--nacos服务注册与发现-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency!--nacos配置中心-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency!--sentinel依赖-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency!--以nacos作为sentinel数据源的依赖-- dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId /dependency2.2、application.yaml文件的编写 spring:application:name: ${application_name}main:banner-mode: offlazy-initialization: truecloud:nacos: # 配置nacos信息discovery:server-addr: ${nacos_server}config:server-addr: ${nacos_server}file-extension: yaml因为我们用nacos作为了配置中心我们可以将sentinel的基本配置放入到nacos中就可以了所以当前服务的yaml配置文件中只需要写一些基本的配置就可以了。 2.3、在Nacos中配置sentinel信息 spring:cloud:sentinel:transport:dashboard: localhost:8080 ##sentinel的控制面板地址datasource: # sentinel用nacos作为数据源的配置flux-control: # 流控管理这个名称可以自定义nacos: # 告诉sentinel用nacos作为数据源data-id: feign-test_flux-control_config.json # 配置中心里执行文件的dataIdserver-addr: ${nacos_server} # nacos的地址rule-type: flow # 指定文件配置的是那种规则degrade-control: # 熔断管理这个名称可以自定义nacos:data-id: feign-test_degrade-control_config.jsonserver-addr: ${nacos_server}rule-type: degradeparam-flow-control: # 热点参数管理这个名称可以自定义nacos:data-id: feign_test-hot_flux-config.jsonserver-addr: ${nacos_server}rule-type: param-flow我们使用nacos配置文件来对服务进行流控、熔断等操作所以就需要有以下几个必须的参数 data-id需要告诉sentinel读取配置中心中的哪个配置文件。rule-type告诉sentinel配置文件配置的控制规则flow流控、degrade熔断、param-flow热点参数想看有哪些规则参数可以查看com.alibaba.cloud.sentinel.datasource包下的枚举类RuleType。 public enum RuleType {FLOW(flow, FlowRule.class),DEGRADE(degrade, DegradeRule.class),PARAM_FLOW(param-flow, ParamFlowRule.class),SYSTEM(system, SystemRule.class),AUTHORITY(authority, AuthorityRule.class),GW_FLOW(gw-flow, com.alibaba.csp.sentinel.adapter.gateway.common.rule.GatewayFlowRule),GW_API_GROUP(gw-api-group, com.alibaba.csp.sentinel.adapter.gateway.common.api.ApiDefinition);//省略部分代码 }2.4、配置信息 我们这里使用的是配置文件的形式对sentinel的控制信息进行持久化所以会存在一个问题nacos中的配置文件对于sentinel来讲是单项数据读入sentinel能监听到nacos中配置的变化但是我们在sentinel中修改了配置nacos是不会监听到并进行修改。 如果想进行双向绑定就需要对sentinel的代码进行修改。 2.4.1、流控配置 流控指的是流量控制也称作限流。它主要是用来限制每单位时间进入系统的请求数量主要用来保证系统的可用性防止大流量把系统压死。 [{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 // 关联资源、入口资源(关联、链路模式)} ]2.4.2、熔断降级配置 在微服务中熔断降级是一种保障服务稳定性的策略。 熔断降级可以简单理解为一个“保险丝”的作用。当某个服务发生严重故障例如超时、异常等为了防止整个系统的崩溃会切断对这个服务的调用。这就像电流过大保险丝会熔断以保护电路。 具体来说熔断降级有两个目的 防止应用程序不断地尝试执行可能会失败的操作给系统造成“雪崩”。 当某个服务提供者发生故障的时候向调用方返回一个错误响应或者替代响应而不是让调用方等待超时。 这样即使个别服务出现问题整个系统的运行也不会受到影响这就是熔断降级的作用。 [{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 代表分钟级} ] 2.4.3、热点参数配置 在微服务中热点参数限流是一种特殊的限流方法。 热点参数限流主要是对参数值相同的请求进行分别统计判断是否超过每秒事务处理量QPS的阈值。这种方法相较于传统的限流方式更精细化和个性化可以针对具体的应用和服务的瓶颈进行限流。 例如在一个微服务系统中“查询用户信息”这个服务可能存在一个热点参数“用户ID”我们可以通过热点参数限流来控制单位时间内对同一个用户ID的查询请求数量防止因为某个热点的参数导致整体服务的故障。 [{resource: /test1,grade: 1, // 限流模式QPS 模式不可更改paramIdx: 0, // 参数索引count: 13, // 单机阈值durationInSec: 6, // 统计窗口时长clusterMode: false, // 是否集群 默认falsecontrolBehavior: 0, // 流控效果支持快速失败和匀速排队模式limitApp: default,// 高级选项paramFlowItemList: [{classType: int, // 参数类型count: 222, // 限流阈值object: 2 // 参数值}]} ]2.4.4、系统规则配置 系统规则是用于定义和配置分布式系统的流量控制和防护的一种策略。 可以根据不同的维度如Load、CPU使用率、总体平均RT、入口QPS和并发线程数等来设定系统保护规则以保证系统的入口流量和系统的负载达到一个平衡让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。 [{avgRt: 1, // RThighestCpuUsage: -1, // CPU 使用率highestSystemLoad: -1, // LOADmaxThread: -1, // 线程数qps: -1, // 入口 QPScount: 55, // 阈值在CPU使用率中是百分比} ]2.4.5、授权规则配置 授权规则是用于控制服务请求者访问受保护资源的一种权限判断。它可以基于请求的来源或其他因素对请求进行授权或者拒绝。 授权规则有多种实现方式例如白名单和黑名单。白名单是允许来源在白名单内的调用者访问受保护资源而黑名单则是禁止来源在黑名单内的调用者访问受保护资源。 在Sentinel中可以通过自定义RequestOriginParser接口从请求对象中获取请求者的来源并按照白名单或黑名单的规则进行授权判断。 [{resource: sentinel_spring_web_context,limitApp: /test,strategy: 0 // 授权类型(0代表白名单1代表黑名单。)} ]3、Gateway整合Sentinel和Nacos 在分布式系统中一般使用Gateway网关来作为系统的入口整合了网关后请求会通过Gateway进行转发就相当于Servlet中的forward转发过程不会在浏览器中进行记录。 所以当我们为系统添加了Gateway之后我们就可以不为每一个微服务添加流控效果了只需要在Gateway中设置流控就可以了。 我们在Gateway中进行流控、熔断等操作resource指的就是我们的服务名称。 3.1、流控配置 Gateway的流控配置和普通的流控配置不一样。 [{resource: feign-test, // 资源名resourceMode: 0, // API类型, 0: ROUTE ID区分, 1: APIcount: 1, // 阈值QPS类型就是限制时间间隔的请求数线程数类型就是指并行的线程数grade: 1, // 阈值类型0线程数1QPScontrolBehavior: 2, // 流控方式0快速失败2匀速排队intervalSec: 10, // 间隔单位是秒burst: 0, // burst只有在快速失败时才有效maxQueueingTimeoutMs: 1000 // 超时时间单位是毫秒} ]3.1.1、网关流控的所有配置参数 参数名参数描述resourceModeAPI类型0ROUTE ID1APIresource资源名grade阈值类型0线程数1QPScount阈值QPS类型就是限制时间间隔的请求数线程数类型就是指并行的线程数intervalSec间隔 单位是秒controlBehavior流控方式0快速失败2匀速排队burst额外流量快速失败流控方式下允许突出的流量数maxQueueingTimeoutMs排队时间单位是毫秒匀速排队流控方式下允许排队的时间paramItem请求属性keyjson对象为配置的json keyvalue就是余下的配置项parseStrategy参数属性0 ClientIP1RemoteHost2Header 3URL参数4 CookiefieldName参数名称若参数属性选择 Header 模式或 URL 参数模式则需要指定对应的 header 名称或 URL 参数名称matchStrategy参数值匹配策略0 精确匹配1子串查询匹配2正则表达式匹配pattern参数值匹配内容按匹配策略来配置的值只有匹配该模式的请求属性值会纳入统计和流控若为空则统计该请求属性的所有值。 3.1.2、注意事项 参数值如果是数字那么字符串和数字都可以。当Gateway使用了流控配置的持久化那么sentinel中datasource配置下的rule-type参数值就得是gw_flow, 不能是flow但也不是一定不能。 spring:cloud:sentinel:transport:dashboard: http://localhost:8080datasource:flow-control:nacos:server-addr: ${nacos_server}data-id: gateway_flux-control_config.json # rule-type: flowrule-type: gw_flow1、如果配置的是flow那么在sentinle中就不会显示处Gateway的流控配置但是不影响功能。 2、如果配置的是gw_flow才会在sentinel中显示Gateway的流控配置同时也不影响功能。 3.2、熔断降级配置 Gateway的熔断降级配置和之前的配置是一样的。 [{resource: feign-test, // 资源名count: 1000, // 当熔断策略是慢调用时此值为最大RT单位是毫秒。当熔断是策略是异常比例时此值为异常比例。当熔断策略是异常数时此值为异常数目timeWindow: 5, // 熔断时长单位是秒grade: 0, // 0: 慢调用 1: 异常比例2:异常数minRequestAmount: 2, // 最小请求数slowRatioThreshold: 0.2, // 比例阈值statIntervalMs: 10000 // 统计时长单位毫秒} ]
http://www.tj-hxxt.cn/news/218256.html

相关文章:

  • 免费建站网站 百度一下网络规划设计师2022论文5月
  • 深圳制作网站培训机构工程承包去哪个网站
  • 站长工具seo综合查询收费吗珠海网站建设案例
  • 做网站的盈利点用什么做网站开发
  • 网站备案号含义那里有专做粮食的网站
  • 百度网站模板免费下载迅雷资源做下载网站
  • 房地产网站欣赏推广方式有哪些渠道
  • 天元建设集团有限公司法定代表人宁波专业seo团队
  • 国家电网交流建设分公司网站网站域名中文后缀
  • 做电影网站会违法吗湖南人文科技学院全国排名
  • 鲜花网站建设介绍wordpress常规设置
  • 后期网站建设及维护推广丽水 网站建设
  • 南城网站建设价格贵阳网站建设费用多少网帮你
  • 福州网站设计外包上海的咨询公司排名
  • 昌平上门做网站那高级网站开发培训
  • 网站到期如何续费项目计划书ppt
  • 做心理咨询可以在哪些网站发贴深圳房地产信息平台官网
  • 深圳建站网站公司小程序怎么做网站
  • 苏州高端网站设计企业低调赚大钱的灰色行业
  • 龙门石窟网站建设策划报告那家财经网站做的好
  • 网站建设费如何记账如何做返利网站
  • 长沙网站建设网网站开发费入什么费用
  • 一个域名可以做几个网站栾城哪家公司做网站
  • 个人公司网站建设答辩莱州网站建设包年
  • 订餐网站开发流程广告设计宣传画册
  • 抚州市临川区建设局网站公司排行榜
  • 信阳网站建设培训网站设计怎么做好
  • 空调维修网站模板深圳专业做网站电话
  • 有哪些网站是静态网站注册完域名怎么做网站
  • 团购营销型网站制作seo学徒是做什么