网站 粘度,不备案 网站 盈利,wordpress 搜索 高亮,河北网络公司有哪些Feign前面我们虽然使用了Ribbon和Hystrix进行了负载均衡和服务熔断#xff0c;但是我们的消费方代码中由于要调用提供方的服务#xff0c;比如#xff1a;String user this.restTemplate.getForObject(http://service-provider/user/ id, String.class);使用了…Feign前面我们虽然使用了Ribbon和Hystrix进行了负载均衡和服务熔断但是我们的消费方代码中由于要调用提供方的服务比如String user this.restTemplate.getForObject(http://service-provider/user/ id, String.class);使用了链接直接拼接的方式这样的硬编码不太优雅这样我们就需要使用Feign。Feign在英语中是伪装的意思这里Feign可以把Rest的请求进行隐藏伪装成类似SpringMVC的Controller一样。这样我们就不用再自己拼接url拼接参数等等操作一切都交给Feign去做。Feign也是Netflix开发的是一种声明式、模板化的HTTP客户端Feign可以让我们更加便捷地调用HTTP API。Feign支持自带注解或JAX-RS注解。SpringCloud对Feign进行了增强使Feign支持SpringMVC注解并整合了Ribbon和Erueka。Feign使用 1.引入openFeign启动器 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency 2.feign.hystrix.enabletrue,开启feign的熔断功能Feign默认不开启熔断feign:hystrix:enabled: true # 开启Feign的熔断功能 3.在引导类上 EnableFeignClients不需要使用RestTemplate了feign已经自动集成了Ribbon负载均衡的RestTemplate。SpringCloudApplication 4.创建一个接口在接口添加FeignClient(value服务id, fallback实现类.class)。这是一个接口Feign会通过动态代理帮我们生成实现类。这点跟mybatis的mapper很像。在接口中定义一些方法这些方法的书写方式跟之前controller类似。FeignClient 5.在controller中注入userClientController 6.创建了一个熔断类实现feign接口实现对应的方法这些实现方法就是熔断方法Component这样如果服务正常调用则正常输出如果停掉提供方服务则会服务熔断用户端提示熔断信息设置feign的日志级别1、首先设置cn.figo包下的日志级别都为debug logging:level:cn.figo: debug2、编写Frign配置类定义日志级别Configuration 这里指定的Level级别是FULLFeign支持4种级别 - NONE不记录任何日志信息这是默认值。 - BASIC仅记录请求的方法URL以及响应状态码和执行时间 - HEADERS在BASIC的基础上额外记录了请求和响应的头信息 - FULL记录所有请求和响应的明细包括头信息、请求体、元数据。3、在FeignClient接口上指定配置类FeignClient这样设置后可以看到每次访问的日志请求压缩Spring Cloud Feign 支持对请求和响应进行GZIP压缩以减少通信过程中的性能损耗。通过下面的参数即可开启请求与响应的压缩功能feign:compression:request:enabled: true # 开启请求压缩response:enabled: true # 开启响应压缩同时我们也可以对请求的数据类型以及触发压缩的大小下限进行设置这里的数据类型、压缩大小下限均为默认值。feign:compression:request:enabled: true # 开启请求压缩mime-types: text/html,application/xml,application/json # 设置压缩的数据类型min-request-size: 2048 # 设置触发压缩的大小下限