博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C springmvc mybatis电子商务平台源码--熔断监控Turbine
阅读量:5882 次
发布时间:2019-06-19

本文共 3140 字,大约阅读时间需要 10 分钟。

在复杂的分布式系统中,相同服务的节点经常需要部署上百甚至上千个,很多时候,运维人员希望能够把相同服务的节点状态以一个整体集群的形式展现出来,这样可以更好的把握整个系统的状态。 为此,Netflix提供了一个开源项目(Turbine)来提供把多个hystrix.stream的内容聚合为一个数据源供Dashboard展示。愿意了解源码的朋友直接求求交流分享技术:二一四七七七五六三三

1、添加依赖

    
        
org.springframework.cloud
        
spring-cloud-starter-turbine
    
    
        
org.springframework.cloud
        
spring-cloud-netflix-turbine
    
    
        
org.springframework.boot
        
spring-boot-starter-actuator
    
    
        
org.springframework.cloud
        
spring-cloud-starter-hystrix-dashboard
    
复制代码

2、配置文件

spring.application.name=hystrix-dashboard-turbineserver.port=8001turbine.appConfig=node01,node02turbine.aggregator.clusterConfig= defaultturbine.clusterNameExpression= new String("default") eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/复制代码

turbine.appConfig :配置Eureka中的serviceId列表,表明监控哪些服务 turbine.aggregator.clusterConfig :指定聚合哪些集群,多个使用”,”分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问 turbine.clusterNameExpression : 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 3、启动类 启动类添加@EnableTurbine,激活对Turbine的支持

@SpringBootApplication@EnableHystrixDashboard@EnableTurbinepublic class DashboardApplication {     public static void main(String[] args) {        SpringApplication.run(DashboardApplication.class, args);    } }复制代码

到此Turbine(hystrix-dashboard-turbine)配置完成

4、测试 在示例项目spring-cloud-consumer-hystrix基础上修改为两个服务的调用者spring-cloud-consumer-node1和spring-cloud-consumer-node2

spring-cloud-consumer-node1项目改动如下: application.properties文件内容

spring.application.name=node01server.port=9001feign.hystrix.enabled=true eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/spring-cloud-consumer-node2项目改动如下: application.properties文件内容spring.application.name=node02server.port=9002feign.hystrix.enabled=true eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/ HelloRemote类修改:@FeignClient(name= "spring-cloud-producer2", fallback = HelloRemoteHystrix.class)public interface HelloRemote {     @RequestMapping(value = "/hello")    public String hello2(@RequestParam(value = "name") String name); }复制代码

对应的HelloRemoteHystrix和ConsumerController类跟随修改,具体查看代码

修改完毕后,依次启动spring-cloud-eureka、spring-cloud-consumer-node1、spring-cloud-consumer-node1、hystrix-dashboard-turbine(Turbine)

打开eureka后台可以看到注册了三个服务:

访问 http:/ /localhost:8001/turbine.stream

返回:

: ping data: {"reportingHostsLast10Seconds":1,"name":"meta","type":"meta","timestamp":1494921985839} 并且会不断刷新以获取实时的监控数据,说明和单个的监控类似,返回监控项目的信息。进行图形化监控查看,输入:http:/ /localhost:8001/hystrix,返回酷酷的小熊界面,输入: http:/ /localhost:8001/turbine.stream,然后点击 Monitor Stream ,可以看到出现了俩个监控列表

整体代码结构如下:

转载地址:http://cktix.baihongyu.com/

你可能感兴趣的文章
详解消息队列的设计与使用
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
控制子窗口的高度
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
ORACLE---Unit04: SQL(高级查询)
查看>>
贪食蛇
查看>>
201521123009 《Java程序设计》第11周学习总结
查看>>
Python3之多线程学习
查看>>
MVC和MTV结构分析
查看>>
(转)微信网页扫码登录的实现
查看>>
mariadb启动报错:[ERROR] Can't start server : Bind on unix socket: Permission denied
查看>>
nginx的信号量
查看>>
云im php,网易云IM
查看>>
河南农业大学c语言平时作业答案,河南农业大学2004-2005学年第二学期《C语言程序设计》期末考试试卷(2份,有答案)...
查看>>
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
c语言 中的共用体和结构体如何联合定义,结构体(Struct)、联合体(Union)和位域
查看>>
SDL如何嵌入到QT中?!
查看>>
P1026 统计单词个数
查看>>