一、Hystrix单服务仪表盘
1、创建服务生产者
1.1、添加最基础的相关依赖
<!-- 其他默认依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!-- 我们需要添加的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
1.2、在启动入口,添加仪表盘的注解
1.3、访问生产者的监控地址
2、创建服务的消费者
2.1、添加最基础的相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.2、在启动入口,添加开启断路器注解
2.3、启动服务后,控制台会打印监控的url
这里表明我们的消费者服务已经具备了访问/hystrix.stream,但是需要注意:
1)、必须要先访问一个自己的rest接口,该rest接口必须是通过feign或者是直接用@HystrixCommand进行处理,调用了其他服务的接口,否则会出现一直请求等待(也有的人说会一直提示ping ping...)
2)、访问/hystrix.stream,如果出现如下错误
就设置下最大连接数
2.4、访问效果
1)直接访问消费者服务,返回JSON数据
2)加入服务提供方的仪表盘
copy的解释
二、Turbine集群仪表盘
1、创建服务生产者
1.1、添加最基础的相关依赖
<!-- 我们需要添加的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</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>
1.2、在启动入口,添加仪表盘集群的注解
1.3、yml配置
turbine:
aggregator:
clusterConfig: default # 指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
appConfig: wxauthor,wxapi #监控哪些服务
clusterNameExpression: new String("default")
# 1. clusterNameExpression指定集群名称,默认表达式appName;此时:turbine.aggregator.clusterConfig需要配置想要监控的应用名称
# 2. 当clusterNameExpression: default时,turbine.aggregator.clusterConfig可以不写,因为默认就是default
# 3. 当clusterNameExpression: metadata['cluster']时,假设想要监控的应用配置了eureka.instance.metadata-map.cluster: ABC,则需要配置,同时turbine.aggregator.clusterConfig: ABC
1.4、生产者方的访问详情(监控会慢慢通过心跳,找寻服务,所以可能有延时)
1.5、集群仪表盘详情
2、创建服务的消费者
2.1、添加最基础的相关依赖
<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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
2.2、在启动入口,添加开启断路器注解
2.3、消费者方的访问情况