关于turbine集群监控与消息代理结合出错的问题

来源:互联网 发布:win7摄像头软件ecap 编辑:程序博客网 时间:2024/06/03 18:51

           项目用到了springcloud,买了一本翟永超编著的《Spring Cloud 微服务实战》,在看到第196页到第198页,turbine集群监控与消息代理结合时,遇到了错误,虽然最后解决了,但是至今不确定是如何解决的,在此记录一下问题和解决过程。

     

        我在windows本地正确安装了安装了rabbitmq,并且各个模块都按照你书上的说明进行配置,我陆续启动eureka-server、
HELLO-SERVICE、RIBBON-CONSUMER、Turbine以及Hystrix Dashboard,当我访问Hystrix Dashboard,
开启对http://localhost:8989/turbine.stream的监控时,网页显示“
Unable to connect to Command Metric Stream.”。如下图



  turbine控制台报错“java.io.IOException: 您的主机中的软件中止了一个已建立的连接”:

    
   
我确定我rabbitmq是安装正确的,因为当我启动RIBBON-CONSUMER和Turbine时,rabbitmq管理界面上有两个连接,如下图:

  
        我在网上搜“java.io.IOException: 您的主机中的软件中止了一个已建立的连接“这个错误,搜到的全是Android adb数据库等等,反正没有帮助,后来在stackflow上搜到一个和我一模一样的错误,不过回答者只是提出了解决思路(他说springcloud的版本不要混着用,例如ribbon-consumer用的是Angel版本,turbine-amqp用的是Brixton版本,他说最好一致),当然我虽然没有版本跨度这么大,但是也有一些区别,因为我没注意,导致我ribbon-consumer用的是Dalston.SR1,turbine-amqp用的是Dalston.SR2,我顺着他的解决思路把版本统一了,全部设成Dalston.SR2,因为我是通过idea中的Spring Initializr来创建springboot工程,创建过程中选择springboot版本时一定要一致,我就是没注意才导致springcloud各个模块版本不一致(因为springcloud是基于springboot的),如下图蓝圈所示:



       其实就像作者说的一样,他写这本书的时候用的是Brixton版本,但现在都到Dalston版本了,但是不是最新的就是最稳定的最好的,跑题了,接着上面说,版本一之后,然后注意书上作者提醒我们这里一定要用Java8来运行,到这里还不太确定是否能正常运行,于是我去作者博客看了一下,他博客里面有关于这一节的Dalston版本,我对照了一下书上和他博客内容,区别就是在turbine-amqp模块主类上的注解,多了@Configuration和
@EnableAutoConfiguration,少了@SpringBootApplication注解,但其实
@SpringBootApplication这个注解里面就包含了前面两个注解。我索性也按照他的博客改过来。然后再依次启动,最后开启监控,成功了!所以说这个解决过程有点迷糊。
     
      当你用idea中的
Spring Initializr来创建springboot工程时,在选择springcloud依赖时,你发现根本找不到这两个依赖,也许Dalston去掉了这两个,旧版本也许会有,没办法选择,那我创建好工程后,在pom文件中手动填入总可以吧,填了以后你会发现Dalston版本的其他依赖jar版本号为1.5.5,而手动填的那两个依赖版本为1.3.2,所以你如果创建springboot工程时选择1.3.x版本时,可能就会有下面的选项可以选,我现在用的springboot版本为1.5.6,对应的springcloud为Dalston.SR2。当然作者说spring-cloud-starter-turbine-amqp其实就是包装了spring-cloud-starter-turbine-stream和spring-cloud-starter-stream-rabbit,如果将那个依赖替换成这两个,我觉得也不一定运行成功
     
      不确定因素太多,有可能跟rabbitmq版本也有关系,有可能跟在windows中开发运行还是linux中也有关系。

作者博客地址:http://blog.didispace.com
stackflow相同问题地址:
https://stackoverflow.com/questions/36991644/turbine-amqp-not-receiving-the-hystrix-stream-from-services

    

阅读全文
0 0
原创粉丝点击