Hystrix 服务监控平台基本内容讲解与实操 (一)
1. 前言
在之前的小节中,我们已经把 Hystrix 中所提供的微服务治理特性已经全部介绍完毕了,理解和掌握这些特性是用好 Hystrix 的基础,如果各位同学有哪些地方还不清楚,请将之前的小节重复学习几遍。在介绍完 Hystrix 的所有特性之后,最后我们还需要对 Hystrix 中提供的最后一个功能,服务监控平台进行介绍。
本小节会对 Hystrix 中自带的微服务监控平台进行介绍,微服务监控平台分为平台搭建和平台使用两部分,在本节中,我们先来搭建 Hystrix 的服务监控平台。
本节主要内容:
-
什么是服务监控平台;
-
使用 Hystrix 搭建服务监控平台。
2. 什么是服务监控平台
Hystrix 中的服务监控平台,就是对微服务项目进行监控的平台,包括服务运行的状态、服务有无宕机、服务异常信息监控等内容,为开发者和运维者提供了比较友好地界面支持,开发者和运维者可以直接通过观察服务平台界面,来判断具体微服务的状态信息,从而更好地对微服务进行控制。
默认的 Hystrix 中间件已经为我们封装好了微服务监控平台,但是需要通过引入依赖的方式来使用它,接下来就让我们来看一下如何搭建该服务监控平台吧。
3. 使用 Hystrix 搭建服务监控平台
Hystrix 将原生特性和服务监控平台分为了两部分进行集成,目前,我们所引入的 Hystrix 依赖是下面这样的:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
这个依赖只提供了 Hystrix 的基本特性,就是我们前面所介绍的服务容错与降级、服务熔断、服务快速失败等基础内容,并没有把微服务监控台集成到该依赖中,所以,如果我们想搭建微服务监控平台,就需要引入专门支持微服务监控平台的依赖,如下所示:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>
spring-cloud-starter-netflix-hystrix-dashboard
</artifactId>
</dependency>
从上述 artifactid 可以看出,基础的 Hystrix 依赖只比微服务监控平台的依赖名称少一个 dashboard ,这就是 Spring Cloud 潜在的命名规范,大家可以参考学习。
在服务提供者的项目中,我们还需要引入一个依赖,如下所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
这个依赖是 Spring boot 框架提供的一个监控器,HystrixDashboard 需要配置这个监控器来完成对微服务项目的监控。
由于我们的项目是基于 Maven 包管理工具所构建的项目,所以我们需要将微服务监控平台的依赖引入到我们的项目中去。
在将微服务监控平台的依赖引入项目中去后,等待我们的编译器解析完成,没有报任何的红色错误,说明我们已经将 Hystrix 的微服务监控平台引入到了项目中去。
在将依赖引入成功后,我们需要对我们的 Spring Cloud 微服务项目做一下简单的配置,以可以使用 Hystrix 的服务监控平台。
首先,找到我们项目的启动类,然后在启动类的上方,添加 @EnableHystrixDashboard 注解,表明在项目中启用 Hystrix 的微服务项目监控平台,如下代码所示:
@SpringBootApplication
@EnableHystrix
@EnableHystrixDashboard
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
代码解释:
第 3 行,我们在项目启动类的上方添加了 EnableHystrixDashboard 注解,表明在项目中已经开启了 Hystrix 微服务监控平台的使用,可以在项目中使用微服务监控平台了。
经过上述配置之后,运行我们的项目,然后在浏览器地址栏输入:
localhost:8060/hystrix
即项目地址 + 项目端口号 + hystrix 路径,当看到下面截图时,说明我们的 Hystrix 微服务监控平台已经成功集成到了我们的项目中来。
这就是搭建 Hystrix 微服务监控平台的全部流程,希望同学们可以一次成功。
Tips:
1. 各位同学在选择 HystrixDashboard 的依赖时,一定要确保 HystrixDashboard 的依赖版本与我们所使用的 Hystrix 的依赖版本保持一致,否则就会出现由于版本不一致而引起的兼容问题,导致我们的 HystrixDashboard 无法引入到项目中去;
2. 在配置项目启动类时,需要保证 @EnableHystrix 注解和 @EnableHystrixDashboard 注解同时存在,这两个注解少一个,我们的微服务监控平台就无法正常使用,这点需要同学们注意。
3. 在访问 Hystrix 的微服务项目监控平台时,/hystrix 为 Hystrix 提供的默认访问路径,不需要我们进行额外的配置,实际工作中,也很少有人会专门对这个路径名称进行修改;
4. 使用 Hystrix 的微服务监控平台,需要至少存在 2 个微服务项目,Hystrix 不能自己监测自己本身,这一点请同学们注意。
4. 视频演示
5. 小结
本小节采用图文并茂的方式,为大家详细介绍了什么微服务监控平台,以及如何在 Spring Cloud 项目中搭建 Hystrix 微服务监控平台,同时,在搭建过程中,针对容易出现问题的地方我也做了相应的补充。
在介绍完 Hystrix 微服务监控平台之后,接下来我们就需要对监控平台中的各个参数属性进行介绍,让我们下节见吧。