spring cloud
spring boot
restful
maven
intellij idea
Eureka
feign
【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的字节进行压缩
【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
【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'); }}
访问地址:http://client.com/consumer/dept/list查看日志输出。
可以观察到如下流程:1、当使用Feign要通过接口的方法访问Rest服务的时候会根据设置的服务类型发出请求,这个请求是发送给Eureka的,“http://MICROCLOUD-PROVIDER-DEPT/dept/list ”
随后由于配置了授权处理,所以继续发送授权信息“Authorization”在随后服务调用的时候Feign融合了Ribbon技术,所以也支持负载均衡的处理。
总结:Feign=RestTemplate + HttpHeader + Ribbon + Eureka 综合体=业务接口的自动实例化。
SpringCloud实战开发系列课程第十七课请参考:https://jingyan.baidu.com/article/948f5924f1a942d80ef5f963.html