Spring Cloud 集成 Hystrix
1. 前言
本节会为大家介绍,如何基于 Spring Cloud 框架集成 Hystrix 微服务组件。Spring Cloud 框架集成 Hystrix 微服务组件,是学习 Hystrix 基础中的基础,也是本门课程的开端,所以,希望各位同学都能掌握本节内容。
本节主要内容:
-
Spring Cloud 集成 Hystrix 主流方法介绍;
-
集成成功与否的必要性测试。
希望同学们可以完全掌握本节内容。
2. Spring Cloud 集成 Hystrix 主流方法介绍
对于 Hystrix 微服务组件的集成,不同的微服务管理框架有着不同的集成方式,由于本套课程是采用 Spring Cloud 框架,所以我们就来看看针对与 Spring Cloud 框架,是如何集成 Hystrix 的。
下面我将对不同的集成实现方式做详细介绍,各位同学可以选择自己的方式进行集成,同时也希望各位同学体会其中的差异,以及适用的业务场景。
第一种方式 通过 Spring Cloud 官网实现
此种实现方式是一种“大而全”的实现方式,也就是说,通过此种方式进行的集成操作,会将所有辅助的依赖一次性集成。
第一步: 打开 Spring Cloud 的官网,并在官网中找到 Spring Quick Start 界面,出于方便考虑,我在这里直接给出地址,如下所示。
打开之后的界面,如下图所示:
在该界面中可以看到 Step 1 的标题,在该标题下放的第一句中,有个蓝色的网址,这个地址就是我们需要的集成界面,打开之后如下图所示:
第二步: 配置 Hystrix 等其他依赖项。
在打开上述 spring initializr 界面之后,我们就可以在该界面上进行所需依赖项的配置就行了。
首先,我们需要对项目的基本信息进行配置:选择我们所使用的项目包管理工具,这里我们选择 Maven ,语言选择 Java ,Spring Boot 版本,出于稳定考虑,这里选择 2.1.16 版本。
最后,我们需要配置项目所使用的依赖包,在界面右侧的 Dependencies 区域,可以看到一个 ADD DEPENDENCIES 按钮,如下图红框处所示。
我们点击即 ADD DEPENDENCIES 按钮,会出现一个选择依赖的弹框,我们可以在弹出界面上选择所需的依赖,这里我们选择 Hystrix ,如下图所示。
Tips: 这里我们需要选择 Netflix 的 Hystrix 依赖,不要选错了。
在上述操作完成之后,我们就完成了 Hystrix 依赖的配置,配置完毕后,上述 spring initializr 界面如下图所示。
第三步: 打包生成项目包文件
在我们完成 Hystrix 的依赖项配置之后,我们就可以从 Spring 官网将我们配置好的项目包下载下来使用了,我们只需要点击 spring initializr 界面下方的 generate 按钮,即可打包下载我们配置好的项目包,如下图所示。
点击 generate 之后,我们只需要等待项目包下载完成即可使用了。
在项目包下载完成之后,我们需要将下载好的项目包导入到我们的本地环境。首先我们需要解压该项目包,在解压完成后,会得到如下图所示的项目结构。
接着,我们使用自己的 IDE ,将项目包进行导入(以 IDEA 为例):
打开 IDEA ,找到 File 菜单栏,并选择 open , 如下图所示:
在 open 弹出菜单中,选择我们项目包所在位置,并且选中 pom 文件,如下图所示:
接着,在弹出的提示框中,选择 open as project , 如下图所示:
最后,等待 IDEA 将项目包编译完成即可运行项目。
第二种方式 通过 Maven 包管理工具实现
通过 Maven 包管理工具实现的方法和第一种实现方式非常类似,我们需要将 Hystrix 工具对应的 Maven 坐标依赖复制到项目的 pom 文件中去就可以了。
Tips: 上述实现方式与本实现方式最大的区别在于:此种实现方式需要手动搜索 Hystrix 的依赖项,并手动导入;而上述实现方式不需要手动搜索依赖项,只需要通过手动配置即可,这一点需要同学们注意。
我们来看一下上述实现方式中所对应的 Maven 依赖:
<!-- Hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!-- Hystrix-Dashboard -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
我们只需要将上述 Maven 依赖坐标复制到项目的 pom 文件中去即可。
Tips: 第一种方式适合接触过 Spring Boot 框架,但是没有接触过 Spring Cloud 框架的同学;第二种方式适合两种框架都接触过,但是没有使用过 Hystrix 工具的同学。
3. 集成成功与否的必要性测试
无论使用上述哪种方式,实现的效果都是一样的。在配置好之后,我们需要启动刚刚配置的项目,来检测我们的配置是否成功了。
单独的引入 Hystrix 依赖,我们是无法检测是否配置成功的,所以我们又引入了 Hystrix-Dashboard 微服务监控依赖,我们可以通过访问 Hystrix-Dashboard 微服务监控平台来检测 Hystrix 是否配置成功。
如果我们的 Hystrix 是配置成功的话,那么,可以通过输入应用实例地址加端口,且最后以 /hystrix 形式结尾的链接,即可看到我们的 Hystrix Dashboard 监控面板。
就我本机而言,我的应用访问地址是 http://localhost:8093/prefix/hystrix ,每个人的访问地址可能都不一样。
Tips: 我们可以查看项目的配置文件,来获取项目的 ip 地址、端口号信息,ip 地址 + 端口号就组成了项目地址,在项目地址最后,添加 /hystrix 后缀,即可访问 Hystrix Dashboard 监控面板。
如果当我们的项目运行之后,可以看到 Hystrix Dashboard 监控面板,就说明我们的 Hystrix 已经成功集成到了 Spring Cloud 框架中去,我们就可以愉快的来使用 Hystrix 了。
4. 小结
本小节通过图文并茂的方式,为大家介绍了如何将 Hystrix 工具集成到 Spring Cloud 框架中去,通过介绍两种不同的实现方式,希望同学们能体会其中的区别,并根据自己实际情况选择合适的方法来实现。
本小节是本套课程的开端,是学习本套 Hystrix 课程的基础,如果同学们不能掌握本节的内容,那么后续 Hystrix 的学习都不能继续,所以,请各位同学务必掌握本节内容。