springcloud 版本 Hoxton.RELEASE
springboot 版本 2.2.2.RELEASE
一、feign介绍
- Declarative REST Client: Feign (声明式REST服务调用)
Feign是一个声明式web 服务调用服务,他使得一切web服务得以简化。我们只需要创建一个接口并用注解和JAX-RS注解的方式来配置它,即可完成对服务提供方的接口绑定
- 远程过程调用协议(RPC)
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
消息传递
RPC是一种请求-响应协议,一次RPC在客户端初始化,再由客户端将请求消息传递到远程的服务端,执行指定的带有参数的过程。经过远程服务端执行过后,将结果作为响应内容返回到客户端。
存根
在一次分布式计算RPC中,客户端和服务端转换参数的一段代码,由于存根的参数转化,RPC执行过程如同本地执行函数调用。存根必须在客户端和服务端两端均装载,并且必须保持兼容。
二、feign的使用
1、流程图
2、集成feign(使用注册中心(eureka)和配置中心(config))
前提 项目已整合 config eureka
pom文件添加jar
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类新增
@EnableFeignClients 注解 开启feign的支持
接下来开始使用
控制层
定义一个feign接口
其中 ELITE 是 服务端在注册中心注册的 服务名
服务端正常写就行
期间范的错
服务端使用了 @RestController(value = "elite") 指定路径 导致 feign客户端 访问出错
应该使用 @RequestMapping(value = "elite")
三、启动测试
分别 启动 eureka 、config、服务端 、和 feign客户端
总结:每天好心情。