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工程,其Maven配置文件





编写Eureka配置文件




主启动工程



启动Eureka



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

进入注册中心界面



Eureka搭建成功

三、Feign调用及断路器

新建一个接口基工程

其Pom.xml如下:



新建公共实体基类



新建接口基类



这个就是Feign接口基工程

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



其Pom.xml如下:








其配置文件




开启Eureka注册

Feign主服务Controller:




主启动类:



启动Feign服务端



查看Eureka注册中心:



已加载至服务

搭建Feign消费者



其Pom.xml





配置文件,连接至Eureka



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



Feign接口基工程的基接口



指定的服务提供者

<code>@FeignClient(name="demo-feign-freeservice" /<code>

<code>@FeignClient(name="demo-feign-freeservice" /<code>

<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>

代表了断路器处理逻辑


启动Feign微服务消费者


注册中心:


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


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


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


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

四、MyBatis-Plus

MyBatis-Plus在Maven中引入的


其配置文件application.yml


配置了MyBatis XML扫描文件


扫描实体接口:


MyBatis-Plus依赖的工具:


代码生成工具类:


设置作者及目录


配置数据源



设置需要生成的表


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


指定xml生成:



执行生成:



运行之后,代码生成



五、Swagger

Swagger引入的Maven:


Swagger包配置扫描Controller:


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


Swagger集成完毕

六、总结

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