Feign的正确打开姿势

116 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情

前言

由于某些问题,认证和服务的问题,我们的Auto2.0现在没法做,只能后面做,所以现在我们继续进行正常的开发。那么今天我们来玩的是使用feign,那么其中也是出了不少的岔子。

环境

我们的环境很简单,就是这些微服务。 在这里插入图片描述

那么我们的任务是User服务区调用Blog服务。

集中Feign包

由于各个服务之间都需要相互调用,所以的话,为了方便,我们直接把所有的Feign接口都集中起来。 在这里插入图片描述 可以看到我们把全部都集中起来了。

这个时候就可以把这个作为一个组件导入了。

导入使用

修改配置

现在的话,我们把所有的玩意都集中起来了,所以的话,原来的服务是需要修改的,首先有第一个问题。 这个问题的话是Feign本身存在的问题。那就是,当多个Feign的类,使用同一个服务的时候时候出问题的。就像这样。 在这里插入图片描述 在这里插入图片描述 他们都是这个activity的。所以这个时候会存在冲突。 那么这个时候解决方案是: 我们在引用这个feign包的服务中写入这个配置:

spring.main.allow-bean-definition-overriding=true

在这里插入图片描述

导入对应的feign

之后是我们的配置类开启feign的时候的问题。现在我们是全部都提取了,所以对于的服务本身也存在被调用的情况,在加载扫描feign接口的时候要排除自己,那么解决方案就是,只导入直接要的。例如在User服务要调用到Blog服务。 在这里插入图片描述 我只扫描我blog的。

测试

测试的代码这个很简单就是,User调用Blog 在这里插入图片描述 在这里插入图片描述 这个没办法和业务耦合比较紧密我这个不好演示。其实到是有一个可以演示的,那就是分布式事务,但是这个玩意我还没开发完对应的业务,上这个的话后面优化再说,而且那玩意重点是那4个工作模式,用的话还是很简单的,就是配置麻烦。