服务治理:服务熔断与监控

服务治理:服务熔断与监控项目中微服务如何修改 1 添加依赖 dependency groupId org springframew cloud groupId artifactId spring cloud starter hystrix artifactId dependency

微服务治理
1、微服务的依赖层级:依赖关系,解决单个微服务集群的性能瓶颈。
2、微服务的重要级别:进行熔断处理,防止整个服务雪崩。




项目中微服务如何修改?
针对每个微服务进行监控
1,添加依赖




 
   
   
     org.springframework.cloud 
    
   
     spring-cloud-starter-hystrix 
    
   
   
   
     org.springframework.boot 
    
   
     spring-boot-starter-actuator 
    
   

2,添加配置(Hystrix的配置)

feign.hystrix.enabled=true hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds= hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds= 

3,添加注解启用功能

@EnableFeignClients @EnableHystrix 

聚合监控微服务Turbine
如何对整个项目中的微服务进行监控?
Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。
把监控结果展示在一张页面上。
断路器聚合监控(Hystrix Turbine):聚合所有服务的Hystrix Dashboard的数据。
监控分类:单点监控,集群监控,聚合监控。










 
   
    
    
      org.springframework.cloud 
     
    
      spring-cloud-starter-eureka 
     
    
    
    
      org.springframework.boot 
     
    
      spring-boot-starter-actuator 
     
    
    
    
      org.springframework.cloud 
     
    
      spring-cloud-starter-netflix-hystrix-dashboard 
     
    
    
    
      org.springframework.cloud 
     
    
      spring-cloud-starter-turbine 
     
    
    
    
      org.springframework.cloud 
     
    
      spring-cloud-starter-netflix-turbine 
     
    
   
turbine.appConfig=ZIPKIN-USER-8000,ZIPKIN-USER-8001,ZIPKIN-USER-8002 turbine.aggregator.clusterConfig= default turbine.clusterNameExpression= new String("default") 

单点监控
针对微服务端口进行监控
监控某一个微服务结点对其他微服务的调用;只能监控当前微服务的端口。针对微服务所在的端口进行监控。
当前微服务没有通过feign对其他微服务进行调用,所以监控不到。
案例:实现8001调用8002,通过feign调用
http://localhost:9000/hystrix
http://localhost:8000/hystrix.stream
http://localhost:8001/hystrix.stream














开始监控目标服务
点击“Monitor Stream”按钮,在3个输入框输入无误后,开始“监控”目标服务。
点击“Monitor Stream”按钮后,会出现几种情况:
1、正常,但暂未执行过hystrix命令,会出现两个Loading…
2、正常,随便调用一个被hystrix管理的远程调用接口后,页面会刷新出类似如下的页面(理想状态,调用接口后出现)。
为什么8001监控不到?没有数据,只有先调用通,才会有数据。
3、异常,目标服务没有引入spring-boot-starter-actuator启动依赖。












如何查看hystrixdashboard?
1、实心圆共有两种含义:颜色(故障实例),大小(高压实例)
1)它通过颜色的变化代表了实例的健康程度,它的健康度颜色从绿色
<黄色<橙色<红色递减。
2)它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过该实心圆的展示可以在大量的实例中快速的发现故障实例和高压力实例。

2、曲线:用来记录2分钟内流量的相对变化,可以通过它来观察流量的上升和下降趋势。
3、7种颜色的数据
Success | Short-Circuited | Bad Request |Timeout | Rejected | Failure | Error
成功数,熔断数,错误请求数,连接超时数,连接池拒绝数,失败异常数,最近10s错误比例。
集群主机报告状态:服务请求频率,断路状态















服务熔断与服务降级的区别
1、触发原因不太一样:服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;
2、管理目标的层次不太一样:熔断其实是一个框架级的处理,每个微服务都需要(无层级之分),而降级一般需要对业务有层级之分(比如降级一般是从最外围服务开始)。
服务降级要考虑的问题:1.核心和非核心服务。2.是否支持降级,降级策略






针对Zuul的理解
Zuul本身就集成了Hystrix,实际上Zuul的路由转发也是用到了Ribbon+Hystrix,也就意味着我们可以通过Hystrix Dashboard监控Zuul的工作情况。

服务熔断的作用:防止服务雪崩和级联故障

当服务的某个API接口的失败次数在一定时间内小于设定的阀值时,熔断器处于关闭状态,该API接口正常提供服务.当API接口处理请求的失败次数大于设定的阀值时,Hystrix判定该API接口出现故障,打开熔断器,这时请求该API接口会执行快速失败逻辑(即fallback回退逻辑)。

Feign内集成了robbin依赖,如果存在多个微服务实例,就会通过轮询算法进行处理;所以当自己本地启的微服务注册到Eureka Server上;Eureka Server存在多个实例,就会进行请求转发到其中的实例。

3个输入框。作用如下:目标服务暴露的hystrix.stream端口;“Ping”的间隔时间;目标服务的别名,可以随便取;开始监控目标微服务。





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178620.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:52
下一篇 2026年3月26日 下午4:52


相关推荐

  • 高效用DeepSeek搭建AI Agent,送3本书!

    高效用DeepSeek搭建AI Agent,送3本书!

    2026年3月16日
    2
  • openssl 签发证书_keytool生成证书

    openssl 签发证书_keytool生成证书第一步Openssl产生私钥RSA第二步生成公钥第三步创建证书签名请求CSR文件第四步生成证书其它第一步:Openssl产生私钥(RSA)//1、生成私钥$opensslgenrsa-aes128-outfd.key2048GeneratingRSAprivatekey,2048bitlongmodulus….+++……

    2026年1月21日
    5
  • 如何安装HAXM,如何解决HAXM installation failed问题

    如何安装HAXM,如何解决HAXM installation failed问题如何安装HAXM,如何解决HAXMinstallationfailed问题在安卓开发的过程中,大家都会需要用到安卓虚拟设备,在AndroidStudio中运行虚拟设备要求安装Intel硬件加速器(HAXM),虽然说是推荐使用但实际上不安装就无法运行虚拟设备。按照AndroidStudio提示的步骤安装HAXM,大多数人都会遇到HAXMinstallationfailed.ToinstallHAXMfollowtheinstructionsfoundat:https://so

    2022年6月28日
    28
  • Feign 原理_feign是什么

    Feign 原理_feign是什么Feign原理Feign描述Feign是github上的一个开源项目,目的是简化webservice客户端的开发。在使用Feign时,可以用注解修饰接口,feign还支持插件式的编码器和解码器,使用者可以通过该特性对请求和响应进行不同的封装与解析。流程1、feign使用JDK动态代理2、生成的代理类将进行请求信息封装,并且指定编码器(提供GsonEncoder)和解码器(提供GsonDecoder),如果需要自定义编码器和解码器,需要实现Encoder接口、Decoder接口3、

    2022年10月4日
    4
  • 药店管理系统|数据库设计

    数据库-药店管理系统选题背景随着科技的发展、社会的进步以及人们生活水平的提高,在现代化的生活方式下,人们对生活各个方面的需求都在增加。快节奏的生活方式以及激烈的竞争所带来的压力也让人们的身体经常处于亚健康状态,对于健康的需求越来越迫切的现状,使得药店的经营管理越来越复杂。工作人员在日常工作中需要处理的信息,不但在数量上逐渐增加,而且各种数据之间的相互关联及其加工整理的要求更为复杂。因此,药…

    2022年4月4日
    48
  • UE4导入高度图

    UE4导入高度图UE4导入高度图查找高度图使用ps编辑图片打开虚幻引擎的地形编辑器查找高度图可以从百度直接搜索使用ps编辑图片下载下来之后图片是jpg格式的,虚幻引擎不能直接用需要使用ps编辑一下选择图像->勾选灰度和16位通道,注意:如果不勾选灰度,图片有颜色的话,ue生成地形可能出现为题;还有ue只支持16位通道,不要选择其他通道点击文件和储存为,之后出现一个弹窗,填写自己图片的名字,注意图片的格式只能是png和raw,其他格式ue不支持打开虚幻引擎的地形编辑器1.ue4.25的地形在模式

    2022年5月26日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号