springcloud监控数据turbine和rabbitmq+turbine

可视化数据监控

pom中加入:

<dependency>
			<groupId>com.netflix.hystrix</groupId>
			<artifactId>hystrix-javanica</artifactId>
			<version>RELEASE</version>
		</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>

配置文件:

spring.application.name=e-book-hystrix-dashboard
#配置自定义端口
server.port=1001
#指定一个注册中心
eureka.client.serviceUrl.defaultZone=http://user:test@eureka2:8762/eureka/,http://user:test@eureka1:8761/eureka/
#默认是hostname 注册,改成IP 注册
eureka.instance.perferIpAddress=true

在启动类中添加注解:

@EnableCircuitBreaker   //开启服务降级 断路器
@EnableEurekaClient
@SpringBootApplication
@EnableHystrix
@EnableHystrixDashboard
public class HystrixDashboardApplication {
	public static void main(String[] args) { 
		SpringApplication.run(HystrixDashboardApplication.class, args);
	}     
}

然后启动打开:
在这里插入图片描述
然后在以前的一个项目的pom中加入依赖和上面加入的依赖是一样的。
配置文件中的代码:

spring.application.name=e-book-consumer
#配置自定义端口
server.port=8090
#指定一个注册中心
eureka.client.serviceUrl.defaultZone=http://user:test@eureka2:8762/eureka/,http://user:test@eureka1:8761/eureka/
#默认是hostname 注册,改成IP 注册
eureka.instance.perferIpAddress=true
#Feign默认是不开启Hystrix
feign.hystrix.enabled=true

在启动类中加入注解:

@EnableCircuitBreaker   //开启服务降级 断路器
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
@EnableHystrixDashboard
public class ConsumerApplication {
	public static void main(String[] args) { 
		SpringApplication.run(ConsumerApplication.class, args);
	}  
}

启动项目,然后再浏览器打开:
在这里插入图片描述
在这里插入图片描述
然后将项目的http://localhost:8090/hystrix.stream放在可视化网页的
在这里插入图片描述
就会出现这个页面:
在这里插入图片描述

turbine集群监控数据

在这里插入图片描述
通过对比我们可以发现单个的不需要turbine就可以监控数据,如果多个consumer我就要用turbine监控数据了。
turbine的pom中加入:

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

配置文件中添加:

#---------------------------------------turbine--------------------------
#配置Eureka中的serviceId列表,表明监控哪些服务,服务的名称一定要对
turbine.appConfig=e-book-consumer,e-book-consumer-hystrix
#指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
turbine.aggregator.clusterConfig= 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
turbine.clusterNameExpression="default"

注意项目名称一定要与启动的项目名称向对应,不然监控不到数据。
启动类中的代码:

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

现在就启动多个项目,然后再将一个项目打包在Linux上面运行,这样就形成集群的效果。将这些启动过后访问他们各自的hystrix页面。再访问数据监控页面:
在这里插入图片描述
其中hosts代表的就是集群的数目。右边的有2个说明我们集群监控数据成功了。

rabbitmq+turbine监控数据

在这里插入图片描述
从这个图中我们看出,在consumer和turbine中我们又在中间添加了一个rabbitmq,所以这样就解决了consumer对turbine的强依赖性,而且turbine的配置文件中也不要配置那么的配置了。
在consumer中:
pom中加入:

 <dependency>
	      <groupId>org.springframework.cloud</groupId>
	      <artifactId>spring-cloud-netflix-hystrix-stream</artifactId>
 </dependency>  
 <dependency>
	      <groupId>org.springframework.cloud</groupId>
	      <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
 </dependency>

配置文件中加入:

spring.rabbitmq.host=192.168.23.131
spring.rabbitmq.port=5672
spring.rabbitmq.username=agan
spring.rabbitmq.password=123456
spring.rabbitmq.virtualHost=/

启动类中的代码:

@EnableCircuitBreaker   //开启服务降级 断路器
@EnableEurekaClient
@SpringBootApplication
@EnableHystrix
@EnableHystrixDashboard
public class ConsumerApplication {
	public static void main(String[] args) { 
		SpringApplication.run(ConsumerApplication.class, args);
	}  
}

在turbine中
pom中:

<dependency>
	      <groupId>org.springframework.cloud</groupId>
	      <artifactId>spring-cloud-starter-turbine-stream</artifactId>
	    </dependency>
 <dependency>
	      <groupId>org.springframework.cloud</groupId>
	      <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
 </dependency>

注意这里的依赖最好就只有这两个,不然会引起依赖包的冲突,依赖包问题请看我的另外一篇博客。依赖包问题解决
配置文件中添加的代码:

spring.rabbitmq.host=192.168.23.131
spring.rabbitmq.port=5672
spring.rabbitmq.username=agan
spring.rabbitmq.password=123456
spring.rabbitmq.virtualHost=/

启动类中的代码:

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

dashboard还是不变。
然后启动consumer,turbine和dashboard。还有rabbitmq。
rabbitmq注意端口开放问题。
查看rabbitmq:
在这里插入图片描述
启动完过后你会发现有3个连接。
进入:
在这里插入图片描述
结果:
在这里插入图片描述
这样rabbitmq+turbine进行监控数据就OK了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值