SpringCloud Turbine

前提:SpringCloud解决方案下,存在一个EurekaServer项目,外加两个子项目,并在一个项目中使用hystrix方法调用另外一个项目中的接口

我这里有三个子项目分别为:eureka,gateway,user


创建子项目turbine,pom.xml中加入依赖:

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

application.yml中加入配置:

turbine:
  aggregator:
    clusterConfig: default # 指定聚合哪些集群,多个使用","分割,默认为default
  appConfig: user,gateway,blog  # 配置Eureka中的serviceId列表,表明监控哪些服务
  clusterNameExpression: new String("default")

启动类:

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

启动turbine项目,浏览器输入:http://localhost:9997/hystrix,这里9997是我配置文件的端口号


输入http://localhost:9997/turbine.stream,点击"Monitor Stream",进入监控页面,调用子项目中带有hystrix断路器的接口,就可以看到监控图了
我这里在gateway中使用RestTemplate调用了user中的hi接口,调用代码如下:

@Autowired
RestTemplate restTemplate;

@HystrixCommand(fallbackMethod = "hystrixMsg")
public Result hiUser() {
    // return restTemplate.getForObject("http://user-manage/user/hi", Result.class);
    // getForObject 无法序列化返回结果为制定的类型
    Result result = restTemplate
        .exchange("http://user/user/hi", HttpMethod.GET, null, new ParameterizedTypeReference<Result>() {})
        .getBody();
    return result;
}

public Result hystrixMsg() {
    return new Result("该服务已断开连接!");
}

在浏览器中不停调用gateway的hiUser接口,在user项目启动并能成功调用的时候,监控图如下:


断掉user项目,再次不停调用gatew的hiUser接口,监控图如下:


可以看到红色的百分比数字100%表示全部调用失败了,同时浏览器显示了断路函数中返回的信息


监控图中各项数字的含义,在网上找了张图:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Spring Cloud是基于Spring Framework的微服务框架,它提供了一系列开箱即用的工具和组件,用于构建分布式系统中的常见模式,如服务发现、负载均衡、断路器、配置管理等。 2. Eureka是Spring Cloud中的一个服务发现组件,它允许微服务应用程序注册自己以及发现其他注册的应用程序实例。在Eureka中,服务提供者会向Eureka服务器注册自己的信息,而服务消费者则通过Eureka服务器获得可用的服务列表。 3. Ribbon是Spring Cloud中的一个负载均衡组件,它可以根据一定的负载均衡策略,将客户端的请求分发到多个服务提供者之间,从而提高系统的可用性和性能。 4. Feign是Spring Cloud中的一个声明式HTTP客户端,它通过注解的方式,定义了REST API的接口,Feign会根据这些接口定义生成具体的HTTP请求代码,从而简化了微服务之间的调用。 5. Zuul是Spring Cloud中的一个API网关组件,它提供了一系列的过滤器来实现请求的路由、过滤和转发等功能,可以有效地对外部请求进行管理和控制。 6. Hystrix是Spring Cloud中的一个容错框架,它可以在微服务之间添加断路器,当某个服务出现故障时,Hystrix可以快速地切换到备用方案,从而保证整个系统的稳定性和可用性。 7. Turbine是Spring Cloud中的一个聚合监控组件,它可以将多个Hystrix Dashboard的数据聚合起来,从而方便开发人员进行统一的监控和分析。 8. Config是Spring Cloud中的一个配置管理组件,它可以将应用程序的配置信息集中管理,从而可以实现对分布式系统中各个微服务的配置进行集中管理。 9. Sleuth是Spring Cloud中的一个分布式跟踪组件,它可以用于监控和跟踪微服务之间的调用关系,从而方便开发人员进行故障排查和性能优化。 10. Bus是Spring Cloud中的一个事件总线组件,它可以用于实现微服务之间的事件传递和状态同步,从而方便开发人员进行系统的监控和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值