SpringCloud2.0微服务搭建集成Turbine遇到的一些坑以及解决办法

    由于本人最近才接触SC,一开始就是2.0以上版本开始学习搭建微服务(consul+feign+zuul+hystrix+turbine),而网上的参考资料清一色是1.0+版本,所以在搭建过程中遇到了几个坑,导致浪费了一些时间,现在就遇到问题记录下来,希望能够抛砖引玉。

     搭架微服务过程中最主要问题集中在turbine这一块,接下来我详细介绍一下turbine集成过程。

     首先,在微服务项目中新建一个模块,我这里直接采用的是Spring Initializr,选中依赖如下所示 

配置文件如下,比较简单这里不在赘述。

在启动类上加上如下几个注解

@EnableDiscoveryClient
@EnableHystrix
@EnableCircuitBreaker
@EnableTurbine
@EnableHystrixDashboard

启动项目发现报错,报错信息如下


分析报错信息,发现是服务启动时候发现了两个服务注册类eurekaRegistration和consulRegistration不知道该采用哪一个,由于本人使用的是consul作为服务注册中心,并没有引入eureka任何依赖,所以只能从其他引入的依赖中查找,果然在turbine发现euraka相关包。如下图:


解决办法是在build.grale排除这个包,问题解决。如下图:


重新启动服务,服务启动(没有认真查看控制台信息),由于turbine服务采用8085端口直接访问http://localhost:8085/turbine.stream,结果如下图:


此时激动万分,因为按照网上好多1.0的例子  打开hystrixboard输入http://localhost:8085/turbine.stream  然后监控就成功了。结果却是十分尴尬,页面一直处于loading.....,如下图:


然后就开始了一段时间的爬坑过程,首先在控制台查看信息,发现了一个比较重要的信息,就是turbine对定时对所监控的服务的hystrix定时进行监控,监控过程是通过一个接口返回数据来进行,监控路径如图所示:


这里的路径是:http://trtrst-PC:8081/actuator/hystrix.stream   而我们在服务集成hystrix的时候知道集成成功后能通过 

主机(ip):port/hystrix.stream 直接访问到监控服务的相关信息。而turbine这里的路径中间多了一层/actuator,而在查阅资料寻找问题的过程中我们看到了一个重要的参数就是:

turbine.instanceUrlSuffix

具体参考:https://www.cnblogs.com/java-zhao/p/5830440.html

但是发现,直接在配置文件中是无法配置这个参数,参数不存在,我们只能去源代码中一探究竟,首先是turbine2.0的jar包中SringClusterMonitor类中发现了这一参数,如下图:


发现多的一层/actuator是这里的默认值,但是这个参数又不能通过配置文件配置(抱歉我没找到,如果后续找到继续更新),然后又去turbine的2.0以下的版本去查看相应的参数默认值发现1.4.4版本的turbine中此参数默认值中没有/actuator这层路径,然后更改build.gradle中turbine的版本为14.4,重新启动,成功。

由于本人也是刚接触SC,所以只找到这种解决办法,如果后续后更好的处理办法会及时更新。

本人第一次写博客,不喜勿喷。


  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值