SpringCloud之Hystrix集群监控turbine仪表盘

1.引入

在前一节中我们演示了单机模式下Hystrix服务监控Dashboard仪表盘,但是在实际生产中微服务都是集群模式,

为了更接近世界生产,我们在这里也给大家讲一下如何监控集群模式

2.准备工作

既然我们要监控集群模式,那么首先我们保证服务提供者是处于集群模式的,因此我们复制一个ticket-lock-provider-6004,

定义模块名称为:ticket-lock-provider-6005,

改动点一:

application.yml文件中的端口号改为6005,  instance-id 改为 service-lock:6005 ,其他不变

改动点二:

启动类名称改为: TicketProviderApplication_6005

改动点三:

为了方便测试看从是那个服务提供者,在消息中做端口号标记

特别注意:再次提醒一下,讲课中我们是为了演示,所以总是复制相同的模块,但是实际中只需要将一个项目多部署几个即可

3.构建hystrix-turbine-8081监控项目

pom.xml依赖包

    <dependencies>
        <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>
    </dependencies>

application.yml文件

server:
  port: 8081
  context-path: /

# 客户端负载均衡配置
eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001.wfd360.com:7001/eureka/,http://eureka7002.wfd360.com:7002/eureka/,http://eureka7003.wfd360.com:7003/eureka/

# 应用名称
spring:
  application:
    name: turbine

# turbine配置
turbine:
  app-config: service-lock   # 需要监控的应用名称,这里相当于是6004和 6005的应用名称
  clusterNameExpression: "'default'" # 集群名字为default

启动类:

package com.wfd360;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

/**
 * @author 姿势帝-博客园
 * @address https://www.cnblogs.com/newAndHui/
 * @WeChat 851298348
 * @create 07/20 9:42
 * @description
 */
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@EnableTurbine
public class HystrixTurbineConsumer_8081 {
    public static void main(String[] args) {
        SpringApplication.run(HystrixTurbineConsumer_8081.class, args);
    }
}
View Code

4.测试

 启动eureka,服务提供者6004和6005,启动服务消费者80,启动服务监控 Dashboard 8080 和   turbine 8081

关系图:

 当消费者80去调用 服务 6004或6005时, turbine 8081就能感知到(感知到的是请求数据,但是不能很好的显示),继而发给 dashboard 8080 进行显示

访问:http://localhost/ticket/list ,看服务消费者是否正常

访问: http://localhost:8081/turbine.stream , 看服务监控是否正常

 访问:http://localhost:8080/hystrix.stream 进入仪表盘,并将链接 http://localhost:8081/turbine.stream 放入仪表盘中进行监控

 点击:Monitor Stream按钮,结果如下

 通过不断测试服务消费者:http://localhost/lock/ticket/10,可以观察图中的曲线变化,

完美!

 springCloud课程与代码下载:https://www.cnblogs.com/newAndHui/p/13210228.html

原文地址:https://www.cnblogs.com/newAndHui/p/13348096.html