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

微信企业网站 源码下载wordpress插件数据存放

微信企业网站 源码下载,wordpress插件数据存放,秒赞网站建设,网络推广策划方案范文微服务架构将大型应用程序拆分为多个小而独立的服务#xff0c;每个服务可以独立部署和扩展。然而#xff0c;微服务系统需要面对的挑战也随之增加#xff0c;例如服务之间的依赖、分布式环境下的故障传播和安全问题。因此#xff0c;微服务保护措施是确保系统在高并发、资…微服务架构将大型应用程序拆分为多个小而独立的服务每个服务可以独立部署和扩展。然而微服务系统需要面对的挑战也随之增加例如服务之间的依赖、分布式环境下的故障传播和安全问题。因此微服务保护措施是确保系统在高并发、资源消耗和恶意攻击等压力下依然稳定运行的重要手段。 保证服务运行的健壮性避免级联失败导致的雪崩问题就属于微服务保护。 1. 微服务保护方案 微服务保护的方案有很多比如请求限流、线程隔离、服务熔断等 这些方案或多或少都会导致服务的体验上略有下降比如请求限流降低了并发上限线程隔离降低了可用资源数量服务熔断降低了服务的完整度部分服务变的不可用或弱可用。因此这些方案都属于服务降级的方案。但通过这些方案服务的健壮性得到了提升 1.1 请求限流 服务故障最重要原因就是并发太高解决了这个问题就能避免大部分故障。当然接口的并发不是一直很高而是突发的。因此请求限流就是限制或控制接口访问的并发流量避免服务因流量激增而出现故障。 请求限流往往会有一个限流器数量高低起伏的并发请求曲线经过限流器就变的非常平稳。这就像是水电站的大坝起到蓄水的作用可以通过开关控制水流出的大小让下游水流始终维持在一个平稳的量。 1.2 线程隔离 为了避免某个接口故障或压力过大导致整个服务不可用我们可以限定每个接口可以使用的资源范围也就是将其“隔离”起来。 将不同的服务或模块隔离开来每个服务或模块拥有独立的资源配额和线程池防止资源被耗尽。 1.3 服务熔断 在某个服务出现故障时快速失败而不是等待超时以防止故障传播。 线程隔离虽然避免了雪崩问题但故障服务依然会拖慢服务调用方的接口响应速度。 所以我们要做两件事情 编写服务降级逻辑就是服务调用失败后的处理逻辑根据业务场景可以抛出异常也可以返回友好提示或默认数据。 异常统计和熔断统计服务提供方的异常比例当比例过高表明该接口会影响到其它服务应该拒绝调用该接口而是直接走降级逻辑。 2. 微服务保护实现 微服务保护的技术有很多但在目前国内使用较多的还是Sentinel。 2.1 Sentinel介绍 Sentinel是阿里巴巴开源的一款服务保护框架目前已经加入SpringCloudAlibaba中。 官方网站https://sentinelguard.io/zh-cn/ 2.2 Sentinel服务部署 2.2.1 下载 下载jar包下载地址https://github.com/alibaba/Sentinel/releases 2.2.2 运行 将jar包放在任意非中文、不包含特殊字符的目录下重命名为sentinel-dashboard.jar 然后运行如下命令启动控制台 java -Dserver.port8090 -Dcsp.sentinel.dashboard.serverlocalhost:8090 -Dproject.namesentinel-dashboard -jar sentinel-dashboard.jar 其它启动时可配置参数可参考官方文档https://github.com/alibaba/Sentinel/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE%E9%A1%B9 2.2.3 访问 访问http://ip:8090(ip替换为部署Sentinel的服务器的ip)页面就可以看到sentinel的控制台了 需要输入账号和密码默认都是sentinel 登录后即可看到控制台默认会监控sentinel-dashboard服务本身 2.3 微服务整合 2.3.1 引入依赖 !--sentinel-- dependencygroupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency 2.3.2 配置 application.yaml文件添加下面内容 spring:cloud: sentinel:transport:dashboard: ip:8090http-method-specify: true # 开启请求方式前缀 2.4 请求限流 sentinel控制台在簇点链路后面点击流控按钮即可对其做限流配置。 选择阈值类型为QPS单机阈值假设为6。 这样就把这个簇点资源的流量限制在了每秒6个也就是最大QPS为6。 2.5 线程隔离 限流可以降低服务器压力尽量减少因并发流量引起的服务故障的概率但并不能完全避免服务故障。一旦某个服务出现故障我们必须隔离对这个服务的调用避免发生雪崩。 首先开启Feign的sentinel功能 feign:sentinel:enabled: true # 开启feign对sentinel的支持 然后在某个接口A下的Feign接口调用簇点后面点击流控按钮即可对其做隔离配置。 选择阈值类型为并发线程数单机阈值假设为6。 这里勾选的是并发线程数限制也就是说这个Feign接口调用最多使用6个线程而不是6QPS。 此时如果我们通过页面访问接口A所在服务的其它接口发现不受影响。这就证明线程隔离起到了作用尽管接口A并发很高但是它能使用的线程资源被限制了因此不会影响到其它接口。 2.6 服务熔断 在上面我们利用线程隔离对接口A业务进行隔离保护其它接口。由于接口A下的Feign接口调用服务的耗时较高再加上线程隔离限定了线程数为6导致接口吞吐能力有限。这就导致了几个问题 第一Feign接口调用超出上限的请求就只能抛出异常从而导致接口A业务失败。但从业务角度来说即便Feign接口调用失败接口A数据也应该展示给用户用户体验更好。也就是给Feign接口调用失败设置一个降级处理逻辑。 第二由于Feign接口调用业务的延迟较高从而导致接口A的响应时间也变的很长。这样不仅拖慢了接口A服务消耗了接口A服务的更多资源而且用户体验也很差。对于Feign接口调用服务这种不太健康的接口我们应该直接停止调用直接走降级逻辑避免影响到当前服务。也就是将Feign接口调用接口熔断。 2.6.1 降级处理 触发限流或熔断后的请求不一定要直接报错也可以返回一些默认数据或者友好提示用户体验会更好。 1在Feign模块中给ItemClient定义降级处理类实现FallbackFactory package com.cyt.api.client.fallback;Slf4j public class ItemClientFallback implements FallbackFactoryItemClient {Overridepublic ItemClient create(Throwable cause) {return new ItemClient() {Overridepublic ListItemDTO queryItemByIds(CollectionLong ids) {log.error(远程调用ItemClient#queryItemByIds方法出现异常参数{}, ids, cause);// 查询允许失败查询失败返回空集合return CollUtils.emptyList();} };} } 2在Feign模块中的com.cyt.api.config.DefaultFeignConfig类中将ItemClientFallback注册为一个Bean 3在Feign模块中的ItemClient接口中使用ItemClientFallbackFactory 重启后再次测试发现被限流的请求不再报错走了降级逻辑。 2.6.2 熔断 Sentinel中的断路器不仅可以统计某个接口的慢请求比例还可以统计异常请求比例。当这些比例超出阈值时就会熔断该接口即拦截访问该接口的一切请求降级处理当该接口恢复正常时再放行对于该接口的请求。 断路器的工作状态切换有一个状态机来控制 状态机包括三个状态 closed关闭状态断路器放行所有请求并开始统计异常比例、慢请求比例。超过阈值则切换到open状态 open打开状态服务调用被熔断访问被熔断服务的请求会被拒绝快速失败直接走降级逻辑。Open状态持续一段时间后会进入half-open状态 half-open半开状态放行一次请求根据执行结果来判断接下来的操作。 请求成功则切换到closed状态 请求失败则切换到open状态 我们可以在控制台通过点击簇点后的熔断按钮来配置熔断策略。这里是接口A下的Feign接口调用簇点后的熔断按钮。 这种是按照慢调用比例来做熔断上述配置的含义是 RT超过200毫秒的请求调用就是慢调用 统计最近1000ms内的最少5次请求如果慢调用比例不低于0.5则触发熔断 熔断持续时长20s 3. 总结 假设在微服务架构中有 微服务 A 的接口 A 通过 OpenFeign 远程调用了 微服务 B 的接口 B。为了保证系统的稳定性和可靠性我们可以通过以下策略来实现对请求的保护和故障隔离 3.1 请求限流 请求限流主要作用在接口 A 上用于限制进入接口 A 的并发请求数量。限流可以设定每秒钟允许的最大请求数以防止突发流量导致服务过载。比如如果我们设置接口 A 的限流为每秒最多 100 次请求当达到上限后多余的请求会被拒绝或延迟处理避免接口 A 过载。 3.2 线程隔离 线程隔离则用于接口 B 的调用。为了防止接口 B 的性能问题影响 微服务 B 内部的其他接口或服务我们可以为接口 B 配置一个独立的线程池或信号量限制其并发请求数。例如将接口 B 的线程池大小设置为 10可以确保在高并发场景下接口 B 不会占用过多的资源保护微服务 B 的其他功能模块。这样即使接口 B 出现性能问题也能与其他接口实现隔离避免影响微服务 B 的整体服务能力。 3.3 服务熔断 服务熔断是一种故障保护机制当接口 B 的健康状况不佳时主动中断调用链以保护调用方 微服务 A 的稳定性。熔断机制通常基于请求的失败率、超时率或慢请求比例等指标。例如我们可以统计接口 B 的慢请求即超过设定时间的请求比例和异常请求抛出异常的请求比例当这些比例超出预设阈值如10 秒内错误请求比例超过 50%就触发熔断。 一旦触发熔断调用接口 B 的所有请求将被短路不再真正调用接口 B而是直接执行降级逻辑避免系统资源浪费在不可用的服务上。熔断状态会持续一段时间直到系统检测到接口 B 的健康状况恢复才会重新允许请求流入。 3.4 降级处理 在服务熔断触发后可以执行降级策略。降级策略可以包括返回默认数据、从缓存中读取数据或者提供友好的错误提示确保即使接口 B 不可用微服务 A 也能继续对外提供服务改善用户体验。降级处理有助于提升系统的可用性避免因部分微服务不可用而导致整体服务崩溃。 综上所述这些微服务保护措施限流、线程隔离、熔断和降级共同协作有助于在高并发和异常情况下保障系统的稳定性和用户体验。其中限流用于限制接口 A 的流量线程隔离保证接口 B 的资源独立性熔断机制快速响应接口 B 的故障降级策略则提供友好的故障处理机制。
http://www.hkea.cn/news/14304164/

相关文章:

  • 企业网站制作费做分录贵州省冶金建设有限公司网站
  • 长沙制作网站公司wordpress分类页面添加幻灯片
  • 东莞外贸网站建设策划方案flash型网站网址
  • 站长工具seo源码有网络但是网页打不开
  • 响应式网站有什么好处wordpress统计查看
  • 个人做网站模版是否有人买个性化网站建设公司电话
  • 网站描述如何写利于优化搭建购物商城
  • 北京专业网站营销图标设计免费logo在线生成
  • 高校网站建设目的县城做信息网站
  • 网站微信建设运维培训班网站备案渝
  • 陕西住房和城乡建设部网站首页博客网
  • 网站建设分为哪三部分有经验的中山网站建设
  • 企业网站搜索引擎拓客济南建设集团网站
  • 2017网站开发合同下载花生壳怎么建设购物网站
  • 西安异构国际设计做网站怎么优化
  • 自己做的网站有什么用个人做网站名称怎么选择
  • 做网站维护的收入怎么确认重庆百度整站优化
  • 网站建设需求参考文档海外营销网站设计
  • 如何做招聘网站wordpress中文分类问题
  • 手机百度网站建设网站开发知识付费
  • 博望哪里做网站网址缩短链接在线工具
  • 建网站难吗?什么网站可以注册微信支付方式
  • 做曖視頻网站万能小偷程序做网站
  • vr技术对网站建设有哪些影响微信公众平台运营
  • 做外贸的网站主要有哪些内容教师进修学校网站建设方案
  • 微服务网站优化营商环境发言稿
  • 网站各个阶段推广安康电商网站建设
  • 山东济南网站建设公司广西桂林为什么穷
  • 专做外贸衣服鞋网站有哪些重庆市建设执业资格注册管理中心网站
  • 网站抓取qq哈尔滨网站关键词优化