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

网站为什么要做seo兰州网站建站

网站为什么要做seo,兰州网站建站,动漫设计培训机构哪里好,老渔哥网站建设公司前言 官网首页#xff1a;home | Sentinel (sentinelguard.io) 随着微服务的流行#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件#xff0c;主要以流量为切入点#xff0c;从流量路由、流量控制、流量整形…前言 官网首页home | Sentinel (sentinelguard.io) 随着微服务的流行服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件主要以流量为切入点从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 基本概念 资源 资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容例如由应用程序提供的服务或由应用程序调用的其它应用提供的服务甚至可以是一段代码。在接下来的文档中我们都会用资源来描述代码块。 只要通过 Sentinel API 定义的代码就是资源能够被 Sentinel 保护起来。大部分情况下可以使用方法签名URL甚至服务名称作为资源名来标示资源。 规则 围绕资源的实时状态设定的规则可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。 功能和设计理念 流量控制 流量控制在网络传输中是一个常用的概念它用于调整网络包的发送数据。然而从系统稳定性角度考虑在处理请求的速度上也有非常多的讲究。任意时间到来的请求往往是随机不可控的而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器可以根据需要把随机的请求调整成合适的形状如下图所示 流量控制有以下几个角度: 资源的调用关系例如资源的调用链路资源和资源之间的关系运行指标例如 QPS、线程池、系统负载等控制的效果例如直接限流、冷启动、排队等。 Sentinel 的设计理念是让您自由选择控制的角度并进行灵活组合从而达到想要的效果。 熔断降级 除了流量控制以外降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性如果调用链路中的某个资源出现了不稳定最终会导致请求发生堆积。这个问题和 Hystrix 里面描述的问题是一样的。 Sentinel 和 Hystrix 的原则是一致的: 当调用链路中某个资源出现不稳定例如表现为 timeout异常比例升高的时候则对这个资源的调用进行限制并让请求快速失败避免影响到其它的资源最终产生雪崩的效果。 系统负载保护 Sentinel 同时提供系统维度的自适应保护能力。防止雪崩是系统防护中重要的一环。当系统负载较高的时候如果还持续让请求进入可能会导致系统崩溃无法响应。在集群环境下网络负载均衡会把本应这台机器承载的流量转发到其它的机器上去。如果这个时候其它的机器也处在一个边缘状态的时候这个增加的流量就会导致这台机器也崩溃最后导致整个集群不可用。 针对这个情况Sentinel 提供了对应的保护机制让系统的入口流量和系统的负载达到一个平衡保证系统在能力范围之内处理最多的请求。 快速开始 Sentinel 是分为两个部分 控制台Dashboard控制台主要负责管理推送规则、监控、集群限流分配管理、机器发现等。核心库Java 客户端不依赖任何框架/库能够运行于 Java 7 及以上的版本的运行时环境同时对 Dubbo / Spring Cloud 等框架也有较好的支持。 控制台 在这里我们看下控制台的使用 首先获取控制台 jar 包Release v1.8.6 · alibaba/Sentinel (github.com) java -server -Xms64m -Xmx256m -Dserver.port8849 -Dcsp.sentinel.dashboard.serverlocalhost:8849 -Dproject.namesentinel-dashboard -jar /root/dev/sentinel/sentinel-dashboard-1.8.6.jar上述命令中我们指定几个 JVM 参数 -Dserver.port8849: 通过Java系统属性设置应用程序的端口号为8849。这意味着应用程序将在8849端口上监听传入的网络请求 -Dcsp.sentinel.dashboard.serverlocalhost:8849: 通过Java系统属性设置Sentinel控制台的服务器地址为localhost:8849。这是为了告诉Sentinel控制台与当前应用程序实例通信的地址 Sentinel 客户端的端口也可以通过启动参数 -Dcsp.sentinel.api.port 进行配置不指定默认是 8719 从 Sentinel 1.6.0 起Sentinel 控制台引入基本的登录功能默认用户名和密码都是 sentinel。可以参考 鉴权模块文档 配置用户名和密码-Dsentinel.dashboard.auth.username 和 -Dsentinel.dashboard.auth.password 注上面我使用的是 linux 启动 sentinel但是下面为了操作方便均在 windows 上演示 为了使得客户端接入控制台需要 客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信。您可以通过 pom.xml 引入 JAR 包 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-transport-simple-http/artifactIdversion1.8.6/version /dependency启动时加入 JVM 参数 -Dcsp.sentinel.dashboard.serverconsoleIp:port 指定控制台地址和端口 前面已经指定。更多的参数参见 启动参数文档。确保应用端有访问量 Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard但是结合 Dashboard 可以取得最好的效果。 使用 Sentinel 来进行熔断保护主要分为几个步骤: 注若您的应用为 Spring Boot 或 Spring Cloud 应用您可以通过 Spring 配置文件来指定配置详情请参考 Spring Cloud Alibaba Sentinel 文档 定义资源 资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容例如由应用程序提供的服务或由应用程序调用的其它应用提供的服务RPC 接口方法甚至可以是一段代码。 只要通过 Sentinel API 定义的代码就是资源能够被 Sentinel 保护起来。大部分情况下可以使用方法签名URL甚至服务名称作为资源名来标示资源。 把需要控制流量的代码用 Sentinel的关键代码 SphU.entry(“资源名”) 和 entry.exit() 包围起来即可。 导入依赖 !-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactIdversion2022.0.0.0/version /dependency 配置 application.yml spring:cloud:sentinel:transport:dashboard: localhost:8849 #sentinel控制台的请求地址SentinelResource 注解 注意注解方式埋点不支持 private 方法。 SentinelResource 用于定义资源并提供可选的异常处理和 fallback 配置项。 SentinelResource 注解包含以下属性 value资源名称必需项不能为空entryTypeentry 类型可选项默认为 EntryType.OUTblockHandler / blockHandlerClass 定义规则 规则主要有流控规则、 熔断降级规则、系统规则、权限规则、热点参数规则等 硬编码方式定义系统规则 private void initSystemRule() {ListSystemRule rules new ArrayList();SystemRule rule new SystemRule();rule.setHighestSystemLoad(10);rules.add(rule);SystemRuleManager.loadRules(rules); }加载不同规则 FlowRuleManager.loadRules(ListFlowRule rules); // 修改流控规则 DegradeRuleManager.loadRules(ListDegradeRule rules); // 修改降级规则 SystemRuleManager.loadRules(ListSystemRule rules); // 修改系统规则 AuthorityRuleManager.loadRules(ListAuthorityRule rules); // 修改授权规则官方 demoSentinel/sentinel-demo at master · alibaba/Sentinel (github.com) 基础示例 demo 熔断降级 在 sentinel 中熔断策略分为慢调用比例 (SLOW_REQUEST_RATIO)异常比例 (ERROR_RATIO)异常数 (ERROR_COUNT) 异常降级仅针对业务异常对 Sentinel 限流降级本身的异常BlockException不生效 Sentinel 提供以下几种熔断策略 慢调用比例 (SLOW_REQUEST_RATIO)选择以慢调用比例作为阈值需要设置允许的慢调用 RT即最大的响应时间请求的响应时间大于该值则统计为慢调用。当单位统计时长statIntervalMs内请求数目大于设置的最小请求数目并且慢调用的比例大于阈值则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态HALF-OPEN 状态若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断若大于设置的慢调用 RT 则会再次被熔断。异常比例 (ERROR_RATIO)当单位统计时长statIntervalMs内请求数目大于设置的最小请求数目并且异常的比例大于阈值则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态HALF-OPEN 状态若接下来的一个请求成功完成没有错误则结束熔断否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0]代表 0% - 100%。异常数 (ERROR_COUNT)当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态HALF-OPEN 状态若接下来的一个请求成功完成没有错误则结束熔断否则会再次被熔断。 慢调用比例熔断 demo 具体应用 下面将会在 springboot 中使用配置文件配置规则 application. yml 配置流控和降级规则文件位置 spring: application: name: lin-cms-spring-boot cloud: sentinel: datasource: ds1: file: data-type: json file: classpath: flowrule.json rule-type: flow ds2: file: data-type: json file: classpath: degraderule.json rule-type: degrade # 立即加载 eager: true transport: dashboard: localhost:8849 #sentinel控制台的请求地址然后配置规则 flowrule.json [{resource: getBook,controlBehavior: 0,count: 5,grade: 1,limitApp: default,strategy: 0} ]degraderule.json [ { resource: getBooks, limitApp: default, grade: 0, count: 20, slowRatioThreshold: 0.5, minRequestAmount: 5, statIntervalMs: 1000, timeWindow: 10 } ]具体规则及参数说明请看[该文档](circuit-breaking | Sentinel (sentinelguard.io)) 参数对应常量值可以参考 RuleConstant该类位于 com.alibaba.csp.sentinel.slots.block public final class RuleConstant {public static final int FLOW_GRADE_THREAD 0; //限流 基于线程数 public static final int FLOW_GRADE_QPS 1; //限流 基于QPSpublic static final int DEGRADE_GRADE_RT 0; //降级 代表一秒内该资源的平均响应时间 /*** Degrade by biz exception ratio in the current {link IntervalProperty#INTERVAL} second(s).*/public static final int DEGRADE_GRADE_EXCEPTION_RATIO 1; // 降级 异常比例/*** Degrade by biz exception count in the last 60 seconds.*/public static final int DEGRADE_GRADE_EXCEPTION_COUNT 2;// 降级 异常数public static final int AUTHORITY_WHITE 0;// 认证 白名单public static final int AUTHORITY_BLACK 1;// 认证 黑名单public static final int STRATEGY_DIRECT 0; // 根据调用方限流策略public static final int STRATEGY_RELATE 1; // 关联流量限流策略public static final int STRATEGY_CHAIN 2; // 根据调用链入口限流策略public static final int CONTROL_BEHAVIOR_DEFAULT 0;// 限流行为直接拒绝public static final int CONTROL_BEHAVIOR_WARM_UP 1;// 限流行为WARM_UP public static final int CONTROL_BEHAVIOR_RATE_LIMITER 2;// 限流行为匀速排队public static final int CONTROL_BEHAVIOR_WARM_UP_RATE_LIMITER 3;public static final String LIMIT_APP_DEFAULT default;public static final String LIMIT_APP_OTHER other;public static final int DEFAULT_SAMPLE_COUNT 2;public static final int DEFAULT_WINDOW_INTERVAL_MS 1000;private RuleConstant() {} }然后使用 Apifox 或是 JMeter 进行流控测试可以看到 QPS 流控生效 直接测试熔断接口可能不会有直观的结果接口上设置线程休眠 Thread.sleep(50) 效果更加直观 系统保护规则、热点限流规则、黑白名单规则 参考链接 sentinel 史上最全入门教程- 疯狂创客圈超详细的Sentinel入门-阿里云开发者社区 (aliyun.com)Sentinel/sentinel-dashboard at master Sentinel使用配置文件配置限流规则Postman 压测指南让 API 性能测试变得简单易行 (apifox.com)Postman压测和JMeter压测的区别 (apifox.com) 本文由博客一文多发平台 OpenWrite 发布
http://www.hkea.cn/news/14278450/

相关文章:

  • 山西利用模板建站关键帧
  • 专业建网站 成都南山做网站的公司
  • ps做网站大小尺寸商城网站开发时间
  • 整容网站模板想自己做网站需要会什么
  • 小说类型网站怎么做打开一张图片后点击跳转到网站怎么做的
  • 国外网站建设企业单页面网站 wordpress
  • 长春仿站定制模板建站苏州市城市建设局网站
  • 成都网站制作哪家专业中企动力手机邮政登录
  • uiapp博客 个人网站商丘市网站建设公司
  • 建站公司现状有个网站经常换域名
  • 有什么好的做家常菜的网站外包的利与弊
  • 做网站下导航字号为多大盐城网站app建设
  • 外国s网站建设wordpress员工管理系统
  • 网站一键制作linux apache发布php网站
  • 滕王阁环境建设网站萌导航
  • 做旅游网站的目的凡科网建设网站如何修改源代码
  • 卖货网站平台建网站用自己的主机做服务器
  • 科技+杭州+网站建设wordpress插件放在主题的哪里
  • 合肥建站软件dede一键更新网站
  • 河南企业网站定制c#网站购物车怎么做
  • php网站开发好学吗老网站不要了做新站需要怎么处理
  • 南昌建网站那家好外贸网络推广哪个好
  • 黑龙江华龙建设集团网站erp企业管理系统有哪些软件
  • 免费网站软件推荐沈阳seo专业培训
  • 广西壮族自治区在线seo关键词排名优化上海网站排名优化价格
  • 色块网站设计html5网站开发环境的搭建
  • 搜索引擎在网站建设中的重要性wordpress搭建的网站
  • 初学者做网站厦门优秀的网站设计
  • 网站编程工资多少wordpress主题 演员
  • 做网站用的动漫资料安徽省干部建设教育网站