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

公司主页网站开发临安做网站的公司

公司主页网站开发,临安做网站的公司,投资手机网站源码,手机做图片设计哪个软件好Hystrix一、概念二、使用1. 环境搭建2. 服务降级3. 异常熔断4. 自定义异常熔断器5.Hystrix仪表盘监控三、测试1. 异常熔断2. 超时熔断3. 熔断器获得异常4. 异常忽略5. 自定义异常熔断器一、概念 故障蔓延#xff1a;由于一个服务变慢或没有响应导致大量请求堆积#xff0c;进… Hystrix一、概念二、使用1. 环境搭建2. 服务降级3. 异常熔断4. 自定义异常熔断器5.Hystrix仪表盘监控三、测试1. 异常熔断2. 超时熔断3. 熔断器获得异常4. 异常忽略5. 自定义异常熔断器一、概念 故障蔓延由于一个服务变慢或没有响应导致大量请求堆积进而导致其他服务瘫痪。 为了解决上述问题微服务架构中引入了熔断器的服务保护机制。 微服务中的熔断器当被调用的方法没有响应调用方法直接返回一个错误响应即可而不是长时间的等待这样避免调用时因为等待而线程一直得不到释放避免故障在分布式系统间蔓延。 Spring Cloud Hystrix 实现了熔断器、线程隔离等一系列服务保护功能。该功能也是基于Netflex的开源框架Hystrix实现的该框架的目标在于通过控制那些远程访问系统、服务和第三方库的节点从而对延迟和故障提供更加强大的容错能力。Hystrix具有服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并、服务监控等强大功能。 二、使用 1. 环境搭建 在消费端加入依赖spring-cloud-starter-netflix-hystrix 在入口类使用EnableCircuitBreaker注解开启熔断器功能也可以使用SpringCloudApplication注解来代替主类上的三个注解 在消费端调用远程服务的方法上添加注解HystrixCommand(fallbackMethoderror,commandProperties{ HystrixProperty(nameexecution.isolation.thread.timeoutInMillisecond,value1500) })标记当前控制器方法采用Hystrix熔断机制当远程服务出现了异常或超时就会自动进行熔断。 属性fallbackMethod用于指定一个本地方法的名称当服务熔断以后就会调用这个方法来替代服务提供者的响应信息。避免用户看到错误信息或无限等待。属性commandProperties可以指定超时时间。 2. 服务降级 当某个服务熔断之后服务端提供的服务不再被调用此时由客户端自己准备一个本地的fallbackMethod回调返回一个默认值来代表服务端的返回。 这种做法虽然不能得到正确的返回结果但至少保证了服务的可用比直接抛出错误或服务的不可用要好得多当然这需要根据业务场景来选择。 3. 异常熔断 我们在调用服务提供者时我们会有可能抛出异常默认情况下方法抛出了异常会自动进行服务降级交给服务降级中的方法去处理 当我们自己发生异常后只需要在服务降级方法中添加一个Throwable类型的参数就能够获取到抛出的异常的类型如下 如果远程服务有一个异常抛出后我们不希望进入到服务降级方法中去处理而是直接讲异常抛出给用户那么我们可以在HystrixCommand注解中添加忽略异常HystrixCommand(fallbackMethod error, ignoreExceptions { HttpServerErrorException.InternalServerError.class}) 4. 自定义异常熔断器 我们也可以自定义类继承HystrixCommand来实现自定义的Hystrix请求在getFallback方法中调用getExecutionException方法来获取服务抛出的异常 public class MyHystrixCommand extends HystrixCommandString {private RestTemplate restTemplate;private String url;/*** 定义一个有参构造必须由于弗雷没有无参构造因此子类必须使用有参构造*/public MyHystrixCommand(Setter setter, RestTemplate restTemplate, String url) {super(setter);this.restTemplate restTemplate;this.url url;}/*** 这个方法不能手动调用Spring会自动调用这个方法来访问我们的服务提供者*/Overridepublic String run() throws Exception {return restTemplate.getForEntity(url,String.class).getBody();}/*** 服务降级方法当Spring自动调用run方法以后如果服务出现了异常则自动调用这个服务降级方法来进行异常的熔断处理*/Overridepublic String getFallback() {//获取异常信息System.out.println(super.getFailedExecutionException().getClass());System.out.println(super.getFailedExecutionException().getMessage());return 自定义异常熔断器熔断了服务;} }5.Hystrix仪表盘监控 Hystrix仪表盘Hystrix Dashboard监控Hystrix的实时运行状态通过查看Hystrix的各项指标信息从而快速发现系统中的问题进而解决它。 这个功能我们可以在原来的消费者应用上添加让原来的消费者具备Hystrix仪表盘功能但一般的微服务架构思想推崇服务的拆分Hystrix Dashboard也是一个服务所以通常会单独创建一个新的工程专用做Hystrix Dashboard服务。 消费端配置 添加健康检查机制依赖包 spring-boot-starter-actuator配置文件配置SpringBoot监控端点的访问权限 #开启SpringBoot的健康检查机制的所有端口 management.endpoints.web.exposure.exclude*消费者启动服务访问 http://localhost:80/actuator 看到 http://localhost:80/actuator/hystrix.stream 可以放到浏览器打开看看。 Hystrix Dashboard 服务端 创建一个普通的SpringBoot工程添加相关依赖 spring-cloud-starter-netflix-hystrix-dashboard入口类添加注解 EnableHystrixDashboard 激活仪表盘功能配置文件 application.properties 中指定服务端口号 server.port9000启动服务进行访问 http://localhost:9000/hystrix 点击进入 三、测试 1. 异常熔断 provider consumer 结果由于服务端的异常消费端使用了熔断机制 2. 超时熔断 provider consumer: 结果没有熔断机制的时候会一直等待15s得到服务 有熔断机制的时候调用error函数进行服务降级。 3. 熔断器获得异常 服务端异常 结果使用熔断机制并且输出异常信息 消费端异常 结果使用熔断机制输出异常信息 4. 异常忽略 服务端 消费端 结果错误直接暴露给用户 5. 自定义异常熔断器 消费端 服务端没有异常时得到服务端的响应 服务端有异常时熔断机制服务降级
http://www.zqtcl.cn/news/389989/

相关文章:

  • 云软件网站建设做仓单的网站
  • 邯郸做移动网站报价注册公司流程流程图
  • linux部署wordpress福州短视频seo推荐
  • 做地推的网站做网站感觉挣不到钱啊
  • 网站建设公司哪家好 搜搜磐石网络营销网站建设免费
  • 如何改网站的内容源码买卖网站
  • 企业网站 报价免费创意字体设计
  • 调用百度地图做全景的网站网站维护要求
  • 济宁网上做科目一的网站网站维护工程师薪酬
  • 领先的响应式网站建设平台湖北企业建站系统信息
  • 嘉兴市住房和城乡建设局网站巩义网站建设方案报价
  • 桂林做网站的公司哪家最好长沙网络工程学院
  • 广州 天河网站设计wordpress评论开关
  • 河南郑州建设网站做贺卡网站
  • 我的家乡湛江网站设计烟台网站建设招聘
  • 如何做网站改版评析网站建设报价单
  • 有关天猫网站开发的论文热狗seo顾问
  • 西安成品网站建设云主机建网站教程
  • 网站后台是怎么更新电商网站开发需求文档
  • 教人怎么做网页的网站有关建设网站的问题
  • wordpress资源站源码网站规划与建设课设报告
  • 网站后台ftp账户企企业业网网站站建建设设
  • 网站建设公司专业的建站优化公司成都天府新区网站建设
  • 建站模板 discuzui设计的流程有哪些步骤
  • 网站建设 军报汕头网站建设网站
  • 便宜购物网站大全网站建设简介联系方式
  • 网站没有后台登陆文件夹公司怎么建立网站吗
  • 营销网站建设流程图网站开发目前主要用什么技术
  • 网站建设与管理维护 李建青大连网站设计费用
  • 网站建设制作心得团队盐都区城乡建设局网站