[转](9条消息)Spring Cloud系列(二十) Turbine集群监控(Finchley.RC2版本)

通过Turbine可以汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard来集中展示和监控。

这里盗个图,当我们使用Turbine和Hystrix Dashboard整合时,系统架构是这样的:

Turbine集群监控

第一步,创建标准的Spring Boot过程,命名turbine-vFinchley.RC2,勾选如下依赖:

此时的pom文件

 
  1.  
    <dependency>
  2.  
    <groupId>org.springframework.cloud</groupId>
  3.  
    <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
  4.  
    </dependency>
 

第二步:修改应用主类,添加@EnableTurbine注解开启Turbine。

 
  1.  
    @EnableTurbine
  2.  
    @SpringBootApplication
  3.  
    public class Application {
  4.  
     
  5.  
    public static void main(String[] args) {
  6.  
    SpringApplication.run(Application.class, args);
  7.  
    }
  8.  
    }
 

第三步,在 application.yml 加入 Eureka 和 Turbine 的相关配置

 
  1.  
    #应用名称
  2.  
    spring:
  3.  
    application:
  4.  
    name: turbine #为服务命名
  5.  
    server:
  6.  
    port: 3336
  7.  
    management:
  8.  
    port: 8081
  9.  
    eureka:
  10.  
    client:
  11.  
    service-url:
  12.  
    defaultZone: http://localhost:1111/eureka/ #指定服务注册中心位置
  13.  
    instance:
  14.  
    prefer-ip-address: true
  15.  
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
  16.  
    turbine:
  17.  
    app-config: hystrix #多个逗号隔开
  18.  
    cluster-name-expression: new String("default")
  19.  
    combine-host-port: true
 

参数说明:

  1. turbine.app-config参数指定了需要收集监控信息的服务名;
  2. turbine.cluster-name-expression 参数指定了集群名称为 default,当我们服务数量非常多的时候,可以启动多个 Turbine 服务来构建不同的聚合集群,而该参数可以用来区分这些不同的聚合集群,同时该参数值可以在 Hystrix 仪表盘中用来定位不同的聚合集群,只需要在 Hystrix Stream 的 URL 中通过 cluster 参数来指定;
  3. turbine.combine-host-port参数设置为true,可以让同一主机上的服务通过主机名与端口号的组合来进行区分,默认情况下会以 host 来区分不同的服务,这会使得在本地调试的时候,本机上的不同服务聚合成一个服务来统计。

注意:new String("default")这个一定要用 String 来包一下,否则启动的时候会抛出异常:

org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'default' cannot be found on object of type 'com.netflix.appinfo.InstanceInfo' - maybe not public or not valid?

测试

启动项目依次为

eureka-server-vFinchley.Rc2

eureka-client-vFinchley.Rc2

hystrix-vFinchley.Rc2

hystrix-dashboard-vFinchley.RC2

turbine-vFinchley.RC2

先调用hystrix-vFinchley.Rc2的helloAPI打开Hystrix Dashboard首页,输入http://localhost:3336/turbine.stream

解释一下,我这里hystrix只启动了一个实例,如果你启动了两个(通过指定不同端口),会发现Hosts变成2,但是依然只有一个监控图,是由于两个实例是属于同一个服务的,而对于集群来说我们关注的是服务集群的高可用性,所以Turbine会将相同服务作为一个整体来看,并汇总成一个监控图。当然你如果就想分为两个监控图展示,可以为其设置一个新的spring.application.name,此时就会有两个监控图了。

这里就成功整合了Turbine集群监控。

关于Turbine整合消息代理,等到日后我学习了RabbitMQ再来更新。。。


---------------------
作者:myCat、
来源:CSDN
原文:https://blog.csdn.net/WYA1993/article/details/82588242
版权声明:本文为作者原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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. ConfigSpring Cloud中的一个配置管理组件,它可以将应用程序的配置信息集中管理,从而可以实现对分布式系统中各个微服务的配置进行集中管理。 9. Sleuth是Spring Cloud中的一个分布式跟踪组件,它可以用于监控和跟踪微服务之间的调用关系,从而方便开发人员进行故障排查和性能优化。 10. Bus是Spring Cloud中的一个事件总线组件,它可以用于实现微服务之间的事件传递和状态同步,从而方便开发人员进行系统的监控和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值