2.0X版本以上搭建Turbine Hystrix总结的一些心得

我用的是Nacos不是Eureka
一、首先添加Pom文件的Maven依赖,如果是用Nacos就需要把Trubine 的Eureka给剔除掉,不然的话会起依赖冲突,Nacos依赖的下面几个是Turbine Hystrix必须要加的依赖

<!--引入阿里NACOS 配置管理-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.2.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  <!-- Hystrix -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
 <!-- Actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
 <!--hystrix 面板-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <!--集群监控 排除eureka依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-turbine</artifactId>
            <version>1.4.7.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-netflix-eureka-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

二、配置Nacos yam文件
我配置在网关里面,也就是我配置Turbine入口模块

turbine:
  app-config: goit4-dms-alco,goit4-ems-alco  #需要监控的服务名称
  aggregator:
    cluster-config: default
  cluster-name-expression: "'default'"	//不要忘记单引号
  combine-host-port: true
instanceUrlSuffix: /actuator/hystrix.stream  //默认地址

需要被监控的模块配置,我只拿出来一些关于Hystrix的配置,其余的配置和这个关系不大就没有放上去了,上面的网关配置也一样

spring:
  application:
    name: goit4-dms-alco	//服务名称
feign:
  hystrix:
    enabled: true
hystrix:
  threadpool:
    default:
      coreSize: 20
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

三、启动类加注解

@SpringBootApplication
@EnableDiscoveryClient	//发现Nacos服务
@EnableZuulProxy
@EnableOAuth2Sso
@EnableHystrixDashboard	//开启Hystrix监控面板
@EnableTurbine	//开启Turbine
@EnableCircuitBreaker	//开启熔断
public class ZuulApplication {

	public static void main(String[] args) {
		SpringApplication.run(ZuulApplication.class, args);
	}

	@Bean
	public ServletRegistrationBean getServlet() {	//boot工程2.0X以上这个必须要加
		HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
		ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
		registrationBean.setLoadOnStartup(1);
		registrationBean.addUrlMappings("/actuator/hystrix.stream");  //2.0X 默认地址
		registrationBean.setName("HystrixMetricsStreamServlet");
		return registrationBean;
	}
}

四、配置了Turbine的启动顺序必须在被监控的模块后面
然后输入127.0.0.1:8302/hystrix //这边的ip和端口号都是自己在nacos里面定义的,输入自己的就好,后面加个hystrix

基本上只需要关注那个长条的文本框,输入刚才的地址加端口号拼接上在启动写的默认地址/actuator/hystrix.stream
在这里插入图片描述
点击按钮就会进入如下页面
在这里插入图片描述

五、之前遇到的一些问题汇总
1)之前报错404,找不到127.0.0.1:8302/actuator/hystrix.stream
我的解决方法
启动类加上

@Bean
	public ServletRegistrationBean getServlet() {	//boot工程2.0X以上这个必须要加
		HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
		ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
		registrationBean.setLoadOnStartup(1);
		registrationBean.addUrlMappings("/actuator/hystrix.stream");  //2.0X 默认地址
		registrationBean.setName("HystrixMetricsStreamServlet");
		return registrationBean;
	}

2)一直Loading,不报错,也不输出数据
这个问题卡了我很久,搞的很难受,百度上找了几种方法都还是一样在Loading,然后才发现,我不应该把turbine配置在auth模块的启动类里面,换成了网关之后就成功了

原因是没有触发熔断,所以一直没有数据

课程介绍 【完善体系+精品资料】本课程总计115课时,打造全网最全的微服务体系课程;从微服务是什么、能够做什么开始讲起,绝对零基础入门到精通类型。课程整体脉络十分清晰,每个章节一个知识点,画图+源码+运行讲解,不信你学不会。1、课程先讲解了什么是单体架构、什么是微服务架构、他们之间有什么区别和联系,各自有什么优缺点。2、从本质入手,使用最简单的Spring Boot搭建微服务,让你认清微服务是一种思想和解决问题的手段,而不是新兴技术。3、讲解Spring Boot 与 Spring Cloud 微服务架构之间的联系,原生的RestTemplate工具,以及Actuator监控端点的使用。4、带着微服务所带来的各种优缺点,为大家引入服务发现与注册的概念和原理,从而引入我们的第一个注册中心服务Eureka。5、引入负载均衡的理念,区分什么是服务端负载均衡,什么是客户端负载均衡,进而引入Ribbon负载均衡组件的详细使用。6、为了解决微服务之间复杂的调用,降低代码的复杂度,我们引入了Feign声明式客户端,让你几行代码学习服务的远程调用。7、为了解决服务之间的稳定性,避免发生雪崩问题,我们引入了Hystrix断路器,服务降级和熔断机制。8、微服务集群十分庞大,监控起来是十分困难的,尤其是对每一个接口的熔断情况进行监控,因此我们引入了Turbine微服务监控。9、微服务的调用是杂乱无章的,可以网状调用,怎么做到统一的入口出口,统一的授权、加密、解密、日志过滤,我们引入了第一代网关Zuul。10、微服务的配置分散,每次要修改配置都要重启服务,因此我们引入了Config配置中心。11、跟上主流,Consul是当前主流的服务注册与发现、配置中心一体化的解决方案。12、阿里的Nacos服务注册与发现、配置中心在国内炙手可热,Nacos 经历过双十一的微服务中间件。13、Turbin做微服务监控还是太弱,我们需要更强大,可视化,操作性更强的监控系统,因此我引入了Spring Boot Admin体系。14、Zuul已经停止更新支持,Spring Cloud官方推荐的二代网关Spring Cloud Gateway更加强大。15、微服务的安全架构体系虽然复杂,但是是有学习条例的,什么是认证授权、什么是OAuth2.0的原理、 JWT、怎么样去开发实现。 课程资料 【独家资料】1、课程附带全部63个项目源码,其中Hoxton版本项目源码37个,Edgware版本项目26个,2、230页高清PDF正版课件。3、附带nacos、consul、cmder等视频配套软件。学习方法1、每一节课程均有代码,较好的方式为一边听我的讲解,一边使用我提供的项目代码进行观察和运行。2、课程体系庞大,但是并不杂乱,每个章节只针对一个知识点,减轻学习压力。3、坚持每天学习1~2个章节,可以在地铁、公交上用手机学习。【完善知识体系图】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值