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

天津滨海新区网站建设wordpress+迁移后空白

天津滨海新区网站建设,wordpress+迁移后空白,软件下载网站排行榜,营销型网站建设要多少钱本文作者#xff1a;JLSong 本文链接#xff1a;https://www.cnblogs.com/songjilong/p/12770999.html1、Hystrix是什么#xff1f;Hystrix 是一个用于处理分布式系统的延迟和容错的开源库#xff0c;在分布式系统里#xff0c;许多依赖不可避免的会调用失败#xff0c;比…本文作者JLSong 本文链接https://www.cnblogs.com/songjilong/p/12770999.html1、Hystrix是什么Hystrix 是一个用于处理分布式系统的延迟和容错的开源库在分布式系统里许多依赖不可避免的会调用失败比如超时、异常等Hystrix 能够保证在一个依赖出问题的情况下不会导致整体服务失败避免级联故障以提高分布式系统的弹性。「断路器」本身是一种开关装置当某个服务单元发生故障之后通过断路器的故障监控(类似熔断保险丝)向调用方返回一个符合预期的、可处理的备选响应(FallBack)而不是长时间的等待或者抛出调用方无法处理的异常这样就保证了服务调用方的线程不会被长时间、不必要地占用从而避免了故障在分布式系统中的蔓延乃至雪崩。2、Hystrix 的几个概念2.1服务降级不让客户端等待并立即返回一个友好的提示(服务器忙请稍后再试) 哪些情况会发生服务降级程序运行异常超时服务熔断引起服务降级线程池/信号量打满也会导致服务降级2.2服务熔断类似保险丝电流过大时直接熔断断电。熔断机制是应对雪崩效应的一种微服务链路保护机制当扇出链路的某个微服务出错不可用或者响应时间太长时会进行服务的降级进而熔断该节点微服务的调用快速返回错误的响应信息当检测到该节点微服务调用响应正常后恢复调用链路。服务降级 → 服务熔断 → 恢复调用链路2.3服务限流对于高并发的操作限制单次访问数量3、服务降级的用法与分析超时导致服务器变慢超时不再等待 出错(宕机或程序运行出错)要有备选方案服务提供者超时了调用者不能一直卡死等待必须要服务降级服务提供者宕机了调用者不能一直卡死等待必须要服务降级服务提供者没问题调用者自己出现故障或者有自我要求(自己的等待时间必须小于服务提供者)3.1给服务提供方设置服务降级1、在需要服务降级的方法上标注注解fallbackMethod 代表回退方法需要自己定义HystrixProperty 中设置的是该方法的超时时间如果超过该事件则自动降级当运行超时或服务内部出错都会调用回退方法HystrixCommand( fallbackMethod timeoutHandler, commandProperties { HystrixProperty(name execution.isolation.thread.timeoutInMilliseconds, value 3000)})public String timeout(Long id) { int time 3000; try { TimeUnit.MILLISECONDS.sleep(time); } catch (InterruptedException e) { e.printStackTrace(); } //模拟异常 //int i 10 / 0; return 线程 Thread.currentThread().getName();}2、在启动类上添加注解开启降级EnableCircuitBreaker3.2给服务消费方设置服务降级①.添加配置# 在feign中开启hystrixfeign: hystrix: enabled: true②.和服务提供方一样照葫芦画瓢HystrixCommand( fallbackMethod timeoutHandler, commandProperties { HystrixProperty(name execution.isolation.thread.timeoutInMilliseconds, value 1500)})public String timeout(PathVariable(id) Long id) { int i 1/0; return hystrixService.timeout(id);}③.在启动类上添加注解EnableHystrix3.3问题以上配置方式存在的问题每个业务方法对应一个回退方法代码膨胀每个业务方法上都配置相同的处理代码冗余 解决方式1在类上配置一个全局回退方法相当于是一个通用处理当此回退方法能满足你的需求就无需在方法上指定其它回退方法如果需要使用特定的处理方法可以再在业务方法上定义DefaultProperties(defaultFallback globalFallbackMethod) 解决方式2但此时处理代码和依然和业务代码混合在一起我们还可以使用另一种方式编写一个类实现 Feign 的调用接口并重写其方法作为回退方法然后在 FeignClient 注解上添加 fallback 属性值为前面的类。4、服务熔断的用法与分析在SpringCloud中熔断机制通过 Hystrix 实现。Hystrix 监控微服务间的调用状况当失败的调用到一定阈值默认 5 秒内 20 次调用失败就会启动熔断机制。熔断机制的注解是 HystrixCommandHystrixCommand( fallbackMethod paymentCircuitBreakerFallback, commandProperties { HystrixProperty(name circuitBreaker.enabled, value true), //是否开启断路器 HystrixProperty(name circuitBreaker.requestVolumeThreshold, value 10), //请求次数 HystrixProperty(name circuitBreaker.sleepWindowInMilliseconds, value 10000), //时间窗口期 HystrixProperty(name circuitBreaker.errorThresholdPercentage, value 60) //失败率达到多少后跳闸})public String circuitBreaker(Long id) { if (id 0) { throw new RuntimeException(id 不能为负数); } return Thread.currentThread().getName() 调用成功流水号 IdUtil.simpleUUID();}public String circuitBreakerFallback(Long id) { return id 不能为负数你的id id;}HystrixProperty 中的配置可以参考 com.netflix.hystrix.HystrixCommandProperties 类详见官方文档https://github.com/Netflix/Hystrix/wiki/Configuration也有雷锋同志做了翻译https://www.jianshu.com/p/39763a0bd9b8 熔断类型熔断打开请求不再调用当前服务内部设置时钟一般为MTTR(平均故障处理时间)当打开时长达到所设时钟则进入半熔断状态。熔断半开部分请求根据规则调用服务如果请求成功且符合规则则关闭熔断。熔断关闭不会对服务进行熔断。 断路器什么时候起作用根据上面配置的参数有三个重要的影响断路器的参数快照时间窗回路被打开、拒绝请求到再尝试请求并决定回路是否继续打开的时间范围默认是 5 秒请求总数阈值在一个滚动窗口中打开断路器需要的最少请求数默认是 20 次(就算前 19 次都失败了断路器也不会被打开)错误百分比阈值错误请求数在总请求数所占的比例达到设定值才会触发默认是 50% 断路器开启或关闭的条件当请求达到一定阈值时(默认 20 次)当错误率达到一定阈值时(默认 50%)达到以上条件断路器开启当开启的时候所有请求都不会转发当断路器开启一段时间后(默认 5 秒)进入半开状态并让其中一个请求进行转发如果成功断路器关闭如果失败继续开启重复第 4 和 5 步 断路器开启之后会发生什么再有请求调用时不再调用主逻辑而是调用降级 fallback。断路器开启之后Hytrix 会启动一个休眠时间窗在此时间内fallback 会临时称为主逻辑当休眠期到了之后断路器进入半开状态释放一个请求到原来的主逻辑上如果请求成功返回则断路器关闭如果请求失败则继续进入打开状态休眠时间窗重新计时。5、Hystrix服务熔断的工作流程详见官方文档https://github.com/Netflix/Hystrix/wiki/How-it-Works6、Hystrix DashBoard 上手6.1搭建①.新建一个项目导入 maven 依赖org.springframework.cloud spring-cloud-netflix-hystrix-dashboardorg.springframework.boot spring-boot-starter-actuator②.添加配置server: port: 9001③.开启 Hystrix DashBoardSpringBootApplicationEnableHystrixDashboardpublic class ConsumerHystrixDashBoard9001 { public static void main(String[] args){ SpringApplication.run(ConsumerHystrixDashBoard9001.class, args); }}④.浏览器输入 http://localhost:9001/hystrix出现以下界面即启动成功7、使用注意想要被 Hystrix DashBoard 监控的服务必须导入此依赖org.springframework.boot spring-boot-starter-actuator在被监控服务的主启动类里添加如下代码否则某些旧版本可能报错 Unable to connect to Command Metric Stream./** * 此配置是为了服务监控而配置与服务容错本身无关,SpringCloud升级后的坑 * ServletRegistrationBean因为springboot的默认路径不是/hystrix.stream * 只要在自己的项目里配置上下面的servlet就可以了 */Beanpublic ServletRegistrationBean getServlet(){ HystrixMetricsStreamServlet streamServlet new HystrixMetricsStreamServlet(); ServletRegistrationBean registrationBean new ServletRegistrationBean(streamServlet); registrationBean.setLoadOnStartup(1); registrationBean.addUrlMappings(/hystrix.stream); registrationBean.setName(HystrixMetricsStreamServlet); return registrationBean;}在 Hystrix DashBoard 页面输入基本信息进入仪表盘界面大致情况如下所示操作界面分析代码地址https://github.com/songjilong/springcloud-hoxton-learning
http://www.zqtcl.cn/news/858079/

相关文章:

  • python制作视频网站开发互动网站建设公司
  • 网站软文代写广西网站设计公司排行榜
  • c2c网站代表和网址mirages WordPress
  • 网站建设开发案例教程wordpress中国区官方论坛
  • 王晴儿网站建设做啊录音网站
  • 网站开发版本号正规的企业网站建设公司
  • 中国做网站正邦温州网站建设方案服务
  • 南通网站关键词优化wordpress做小程序
  • 上海企业网站seo多少钱做网站图片链接到天猫
  • 属于教育主管部门建设的专题资源网站是广西壮锦网站建设策划书
  • 云南网站制作一条龙网站建设公司对比分析报告
  • 手机网站客户端网站语言有几种
  • 做网站怎么选取关键词中企动力销售陪酒多吗
  • 新网站做内链雅虎网站收录提交入口
  • 简述建设一个网站的具体过程接做名片的网站
  • 怎样建立自己网站网站产品数据如何恢复
  • 用wordpress建立电商网站用Off做网站
  • 网站建设公司不赚钱ui设计软件培训学校
  • 网站项目策划书模板wordpress修改模版
  • 房地产手机网站模板电脑建立网站
  • 网站自适应手机代码网络服务机构的网站
  • 系统网站重庆智能建站模板
  • wordpress适合优化吗宝塔 wordpress优化
  • 怎么利用网站做外链接怎样做公司网站介绍
  • 广州网站优化渠道木门网站模板
  • 手机网站菜单设计wordpress加联系方式
  • 网站管理助手怎么使用多种郑州网站建设
  • 汉中网站建设费用外贸网站服务商
  • 苏宿工业园区网站建设成功案例色流网站如何做
  • 北沙滩网站建设公司电子商务网站建设管理论文