微服务分为服务提供者、注册中心、消费者,以注册中心为中间模型,由提供者注册服务到注册中心,消费者去注册中心订阅服务,拉取到服务清单后根据服务地址(真实的ip和端口),通过网关geteway去调用服务的模式。
最近在学习过程中,使用Feign客户端服务之间的调用时,一直无法通信,报错信息如下:
从网上翻阅了很多资料,并尝试之后并无效果,今天早上重新搭建环境后成功了,然后尝试排查了之前一直无法解决的问题。
发现是因为jar包冲突,版本不一致导致的。报错版本:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-openfeign-core</artifactId> <version>2.2.2.RELEASE</version> </dependency>
上述frign-core版本是: 2.2.2.RELEASE
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
openfeign的版本是 3.0.1
这是导致一直出现上述的原因所在 版本不一致导致。
使用Feign组件时只引入 spring-cloud-starter-openfeign 即可,无需引入openftign-core, 前者starter已经集成引入了openfeign-core依赖。
也无需引入:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> <version>2.2.2.RELEASE</version> </dependency>
成功界面: