概述
很多使用spring cloud 主要是注册中心,动态配置中心,服务调用,负载均衡,熔断,网关。Feign是一个声明式的Web Service客户端,整合了注解,所以使用起来比较方便,通过它调用HTTP请求访问远程服务,就像访问本地方法一样简单开发者完全无感知。
申明式:接口声明、Annotation 驱动
Web 服务:HTTP 的方式作为通讯协议
客户端:用于服务调用的存根
Feign:原生并不是 Spring Web MVC的实现,基于JAX-RS(Java REST 规范)实现。Spring Cloud 封装了Feign ,使其支持 Spring Web MVC。
RestTemplate、HttpMessageConverter、RestTemplate以及 Spring Web MVC 可以显示地自定义 HttpMessageConverter实现。
场景
假设,有一个Java 接口 UserService, Feign 可以将其声明它是以 HTTP 方式调用的。
注册中心(Eureka Server):服务发现和注册
a. 应用名称:spring-cloud-eureka-server
b. 服务端口:66666
application.properties配置如下:
spring.application.name = spring-cloud-eureka-server
## Eureka 服务器端口
server.port =66666
### 取消服务器自我注册
eureka.client.register-with-eureka=false
### 注册中心的服务器,没有必要再去检索服务
eureka.client.fetch-registry = false
management.security.enabled = false
Feign 声明接口(契约):定义一种 Java 强类型接口
模块:user-api
UserService.java
package com.lawt.spring.cloud.feign