多语言展示
当前在线:970今日阅读:183今日分享:45

SpringCloud微服务中如何进行Feign相关配置?

Spring Cloud实战开发系列课程-分布式开发简介是系列课程第十八课。Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring没有重复制造轮子,它只开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
工具/原料
1

spring cloud

2

spring boot

3

restful

4

maven

5

intellij idea

6

Eureka

7

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,开启日志的输出。@Configurationpublic 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 综合体=业务接口的自动实例化。

注意事项

SpringCloud实战开发系列课程第十七课请参考:https://jingyan.baidu.com/article/948f5924f1a942d80ef5f963.html

推荐信息