Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

Spring Cloud Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

一、技术简介

Eureka是用于微服务注册中心的集大成者,至今已发布多个版本。Spring Cloud也将Eureka组合进内部的生态圈,进行版本发布。最新版本是spring-cloud-starter-eureka-server的1.4.7.RELEASE这个版本。

而FeignClient是用于转发RestTemplate请求的一个组件,Feign包含有Ribbon转发Http服务的功能,同时自动集成了Hystrix断路器的功能。Feign方便Spring Cloud项目进行跨服务调用,同时避免了大量使用RestTemplate转发。Feign通过注册进注册中心,从而方便进行服务发现。Feign服务端开启@EnableEurekaClient方便各客户端发现,Feign客户端开启@EnableFeignClients方便使用Feign服务。

断路器是用来避免微服务雪崩效应,微服务服务链过长时,调用服务如果其中有一个服务挂掉,则会导致整个生态链受影响,请求超时。为了解决这个问题,采用断路器进行阻断,避免服务挂掉而漫长等待。

Swagger是用来方便查询接口,提供给前端开发人员识别调用接口使用的。

MyBatis-Plus是用来进行代码生成器、代码生成工具。

二、Eureka工程

首先准备父工程Pom.xml如下,采用Spring Boot 2.1.0这个版本


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


搭建Eureka工程,其Maven配置文件


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


编写Eureka配置文件


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


主启动工程


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


启动Eureka


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


打开浏览器:http://127.0.0.1:1111

进入注册中心界面


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka搭建成功

三、Feign调用及断路器

新建一个接口基工程

其Pom.xml如下:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


新建公共实体基类


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


新建接口基类


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


这个就是Feign接口基工程

新建一个Feign服务端工程,主体结构如下:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


其Pom.xml如下:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


其配置文件


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


开启Eureka注册

Feign主服务Controller:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


主启动类:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


启动Feign服务端


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


查看Eureka注册中心:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


已加载至服务

搭建Feign消费者


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


其Pom.xml


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


配置文件,连接至Eureka


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


其Feign接口继承至Feign接口基工程的基接口


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Feign接口基工程的基接口


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


指定的服务提供者

<code>@FeignClient(name="demo-feign-freeservice"             /<code>
<code>@FeignClient(name="demo-feign-freeservice"                          /<code>
Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

<code>fallback=DemoFeignFallback.class/<code>
<code>  处理已说明  四、MyBatis-PlusMyBatis-Plus在Maven中引入的其配置文件application.yml配置了MyBatis XML扫描文件扫描实体接口:MyBatis-Plus依赖的工具:代码生成工具类:设置作者及目录配置数据源设置需要生成的表设置生成的包,指定了基础包,Service类的包指定xml生成:执行生成:运行之后,代码生成五、SwaggerSwagger引入的Maven:Swagger包配置扫描Controller:Swagger加入后查看Swagger地址http://127.0.0.1:8091/swagger-ui.htmlSwagger集成完毕六、总结这篇文档讲述了Eureka、Feign、断路器、Swagger、MyBatis-Plus等工具与Spring CLoud的整合/<code>
Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

代表了断路器处理逻辑


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

启动Feign微服务消费者


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

注册中心:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

<code>服务都已启动打开PostMan测试Feign消费者正常请求:/<code>


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

通过断路器处理的(接口调用超时)


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

再次请求PostMan,超时,断路器处理的


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

如上,Feign及断路器处理已说明

四、MyBatis-Plus

MyBatis-Plus在Maven中引入的


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

其配置文件application.yml


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

配置了MyBatis XML扫描文件


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

扫描实体接口:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

MyBatis-Plus依赖的工具:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

代码生成工具类:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

设置作者及目录


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

配置数据源


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

设置需要生成的表


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

设置生成的包,指定了基础包,Service类的包


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

指定xml生成:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


执行生成:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


运行之后,代码生成


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

五、Swagger

Swagger引入的Maven:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

Swagger包配置扫描Controller:


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

Swagger加入后查看Swagger地址http://127.0.0.1:8091/swagger-ui.html


Eureka集成Feign+断路器+Swagger+MyBatis-Plus微工程整合说明

Swagger集成完毕

六、总结

这篇文档讲述了Eureka、Feign、断路器、Swagger、MyBatis-Plus等工具与Spring CLoud的整合


分享到:


相關文章: