sbc(五)Hystrix-服务容错与保护(下)

简介: 看过 应用限流的朋友应该知道,限流的根本目的就是为了保障服务的高可用。 本次再借助SpringCloud中的集成的Hystrix组件来谈谈服务容错。

Hystrix监控


Hystrix还自带了一套监控组件,只要依赖了spring-boot-starter-actuator即可通过/hystrix.stream端点来获得监控信息。



冰冷的数据肯定没有实时的图表来的直观,所以Hystrix也自带Dashboard


Hystrix与Turbine聚合监控


为此我们新建了一个应用sbc-hystrix-turbine来显示hystrix-dashboard

目录结构和普通的springboot应用没有差异,看看主类:


//开启EnableTurbine
@EnableTurbine
@SpringBootApplication
@EnableHystrixDashboard
public class SbcHystrixTurbineApplication {
    public static void main(String[] args) {
        SpringApplication.run(SbcHystrixTurbineApplication.class, args);
    }
}


  • 其中使用@EnableHystrixDashboard开启Dashboard


  • @EnableTurbine开启Turbine支持。


以上这些注解需要以下这些依赖:


<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-turbine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-turbine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
        </dependency>


实际项目中,我们的应用都是多节点部署以达到高可用的目的,单个监控显然不现实,所以需要使用Turbine来进行聚合监控。


关键的application.properties配置文件:


# 项目配置
spring.application.name=sbc-hystrix-trubine
server.context-path=/
server.port=8282
# eureka地址
eureka.client.serviceUrl.defaultZone=http://node1:8888/eureka/
eureka.instance.prefer-ip-address=true
# 需要加入的实例
turbine.appConfig=sbc-user,sbc-order
turbine.cluster-name-expression="default"


其中turbine.appConfig配置我们需要监控的应用,这样当多节点部署的时候就非常方便了(同一个应用的多个节点spring.application.name值是相同的)。


将该应用启动访问http://ip:port/hystrix.stream



由于我们的turbine和Dashboard是一个应用所以输入http://localhost:8282/turbine.stream即可。


详细指标如官方描述:


通过该面板我们就可以及时的了解到应用当前的各个状态,如果再加上一些报警措施就能帮我们及时的响应生产问题。


总结


服务容错的整个还是比较大的,博主也是摸着石头过河,关于本次的Hystrix只是一个入门版,后面会持续分析它的线程隔离、信号量隔离等原理。


项目:github.com/crossoverJi…

博客:crossoverjie.top


相关文章
|
4月前
服务熔断器-Hystrix
服务熔断器-Hystrix
47 2
|
10月前
|
缓存 运维 监控
微服务技术系列教程(22) - SpringCloud- 服务保护机制Hystrix
微服务技术系列教程(22) - SpringCloud- 服务保护机制Hystrix
86 0
|
10月前
|
安全 NoSQL Java
互联网并发与安全系列教程(01) - 基于Hystrix实现服务隔离与降级
互联网并发与安全系列教程(01) - 基于Hystrix实现服务隔离与降级
42 0
|
12月前
|
开发框架 负载均衡 Java
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
168 0
|
3月前
springCloud之服务降级熔断Hystrix、OpenFeign
springCloud之服务降级熔断Hystrix、OpenFeign
136 0
|
3月前
|
监控 Java UED
Java一分钟之-Spring Cloud Netflix Hystrix:容错管理
【6月更文挑战第9天】Spring Cloud Hystrix是用于微服务容错管理的库,通过断路器模式防止服务雪崩。本文介绍了Hystrix的基本概念,如断路器、线程隔离和fallback机制,并展示了如何快速上手,包括添加依赖、启用注解和编写Hystrix命令。此外,还讨论了常见问题(如断路器打开、资源泄漏和不当的Fallback策略)及其解决方案。通过自定义Hystrix指标监控,可以进一步优化系统性能。理解Hystrix工作原理并适时调整配置,对于构建健壮的微服务至关重要。
151 3
|
4月前
|
监控 微服务
Hystrix熔断器设计思想(学习笔记)附(服务监控hystrixDashboard识图)
Hystrix熔断器设计思想(学习笔记)附(服务监控hystrixDashboard识图)
43 0
|
4月前
|
监控 Java Sentinel
springcloud4-服务熔断hystrix及sentinel
springcloud4-服务熔断hystrix及sentinel
48 0
|
4月前
|
监控 数据可视化 Java
Spring Cloud Hystrix:服务容错保护
Spring Cloud Hystrix:服务容错保护
194 0
|
4月前
|
监控 负载均衡 数据可视化
SpringCloud - Hystrix断路器-服务熔断与降级和HystrixDashboard
SpringCloud - Hystrix断路器-服务熔断与降级和HystrixDashboard
50 0