SpringCloud微服务中如何进行Feign相关配置
1、【microcloud-consumer-feign】Feign之中最为核心的作用就是将Rest服务的信息转换为接口调用,但是在实际的使用过程也需要考虑到一些配置情况,例如数据压缩,Rest的核心本质在于:JSON数据传输(XML、文本),于是就必须思考一种情况,用户发送的数据很大呢?所以这个时候可以考虑修改application.yml配置文件,对传输数据进行压缩。server: port: 80eureka: client: #客户端进行Eureka注册的配置 service-url: defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7002.com:7002/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka register-with-eureka: falsefeign: compression: request: mime-types: - text/xml - application/xml - application/json min-request-size: 2048 #超过2048的字节进行压缩

2、【microcloud-consumer-feign】如果有需要则可以在项目之中开启feign的相关日志信息(默认不开启),值檄钕眇修改application.yml配置文件,追加日志追踪:server: port: 80eureka: client: #客户端进行Eureka注册的配置 service-url: defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7002.com:7002/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka register-with-eureka: falsefeign: compression: request: mime-types: - text/xml - application/xml - application/json min-request-size: 2048 #超过2048的字节进行压缩logging: level: com.gwolf.service: DEBUG

3、【microcloud-consumer-service】修改FeignClientConfig,开启日志的输出。@Conf足毂忍珩igurationpublic class FeignClientConfig { @Bean public Logger.Level getFeignLoggerLevel() { return Logger.Level.FULL; } @Bean public BasicAuthRequestInterceptor getBasicAuthRequestInterceptor() { return new BasicAuthRequestInterceptor("gwolf","gwolf"); }}

4、访问地址:http://client.com/consumer/dept/list查看日志输出。

5、可以观察到如下流程:1、当使用Feign要通过接口的方法访问Rest服务的时候会根据设置的服务类型发出请求,这个请求是发送给Eureka的,“http://MICROCLOUD-PROVIDER-DEPT/dept/list”

6、随后由于配置了授权处理,所以继续发送授权信息“Authorization”在随后服务调用的时候Feign融合了Ribbon技术,所以也支持负载均衡的处理。

7、总结:Feign=RestTemplate + HttpHeader + Ribbon + Eureka 综合体=业务接口的自动实例化。