宽城网站制作深圳品牌网站制作咨询电话

张小明 2026/1/14 19:09:17
宽城网站制作,深圳品牌网站制作咨询电话,网站和管理系统哪个更难做,如何做阿里巴巴网站一、概述OpenFeign能干什么#xff1f;前面在使用SpringCloud LoadBalancerRestTemplate时#xff0c;利用RestTemplate对http请求的封装处理形成了一套模版化的调用方法。但是在实际开发中#xff0c;由于对服务依赖的调用可能不止一处#xff0c;往往一个接口会被多处调用…一、概述OpenFeign能干什么前面在使用SpringCloud LoadBalancerRestTemplate时利用RestTemplate对http请求的封装处理形成了一套模版化的调用方法。但是在实际开发中由于对服务依赖的调用可能不止一处往往一个接口会被多处调用所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以OpenFeign在此基础上做了进一步封装由他来帮助我们定义和实现依赖服务接口的定义。在OpenFeign的实现下我们只需创建一个接口并使用注解的方式来配置它(在一个微服务接口上面标注一个FeignClient注解即可)即可完成对服务提供方的接口绑定统一对外暴露可以被调用的接口方法大大简化和降低了调用客户端的开发量也即由服务提供者给出调用接口清单消费者直接通过OpenFeign调用即可。OpenFeign同时还集成SpringCloud LoadBalancer可以在使用OpenFeign时提供Http客户端的负载均衡也可以集成阿里巴巴Sentinel来提供熔断、降级等功能。而与SpringCloud LoadBalancer不同的是通过OpenFeign只需要定义服务绑定接口且以声明式的方法优雅而简单的实现了服务调用。OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的注解如RequstMapping等等。OpenFeign的FeignClient可用解析SPringMVC的RequestMapping注解下的接口并通过动态代理的方式产生实现类实现类中做负载均衡并调用其他服务。二、简单入门!--openfeign-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-openfeign/artifactId /dependencySpringBootApplication EnableDiscoveryClient //该注解用于向使用consul为注册中心时注册服务 EnableFeignClients//启用feign客户端,定义服务绑定接口以声明式的方法优雅而简单的实现服务调用 public class MainOpenFeign80{ public static void main(String[] args){ SpringApplication.run(MainOpenFeign80.class,args); } }生产者的微服务RestController public class PayController { PostMapping(/pay/add) public String addPay(RequestBody Pay pay){ return 新增一条支付信息成功; } GetMapping(/pay/get/{id}) public String getPayInfo(PathVariable(id) Integer id){ return 按照主键记录查询支付流水信息; } }对应的微服务接口//openfeign天然支持负载均衡演示 FeignClient(value cloud-payment-service) public interface PayFeignApi{ //新增一条支付相关流水记录 PostMapping(/pay/add) public String addPay(RequestBody Pay pay); //按照主键记录查询支付流水信息 GetMapping(/pay/get/{id}) public String getPayInfo(PathVariable(id) Integer id); }消费者服务RestController public class OrderController{ Resource private PayFeignApi payFeignApi; PostMapping(value /feign/pay/add) public String addPay(RequestBody Pay pay){ String str payFeignApi.addPay(pay); return str; } GetMapping(value /feign/pay/get/{id}) public ResultData getPayInfo(PathVariable(id) Integer id){ String str payFeignApi.getPayInfo(id); return str; }三、高级特性1、超时控制在Spring Cloud微服务架构中大部分公司都是利用OpenFeign进行服务间的调用而比较简单的业务使用默认配置是不会有多大问题的但是如果是业务比较复杂服务要进行比较繁杂的业务计算那后台很有可能会出现Read Timeout这个异常因此定制化配置超时时间就有必要了。#全局配置 spring: cloud: openfeign: client: config: default: #连接超时时间 connectTimeout: 3000 #读取超时时间 readTimeout: 3000 #单独对某个微服务进行设置 cloud-payment-service: #连接超时时间 connectTimeout: 20000 #读取超时时间 readTimeout: 200002、重试机制//OpenFeign重试设置 Configuration public class FeignConfig{ Bean public Retryer myRetryer(){ //return Retryer.NEVER_RETRY; //Feign默认配置是不走重试策略的 //最大请求次数为3(12)初始间隔时间为100ms重试间最大间隔时间为1s return new Retryer.Default(100,1,3); } }3、默认HttpClient修改OpenFeign中HttpClient如果不做特殊配置OpenFeign默认使用JDK自带的HttpURLConnection发送HTTP请求由于默认HttpURLConnection没有连接池、性能和效率比较低如果采用默认性能上不是最好的所以加到最大。!-- httpclient5-- dependency groupIdorg.apache.httpcomponents.client5/groupId artifactIdhttpclient5/artifactId version5.3/version /dependency !-- feign-hc5-- dependency groupIdio.github.openfeign/groupId artifactIdfeign-hc5/artifactId version13.1/version /dependencyConfiguration public class FeignConfig{ Bean public Retryer myRetryer(){ return Retryer.NEVER_RETRY; //Feign默认配置是不走重试策略的 } }openfeign: httpclient: hc5: enabled: true4、请求/响应压缩对请求和响应进行GZIP压缩Spring Cloud OpenFeign支持对请求和响应进行GZIP压缩以减少通信过程中的性能损耗。通过下面的两个参数设置就能开启请求与相应的压缩功能spring.cloud.openfeign.compression.request.enabledtruespring.cloud.openfeign.compression.response.enabledtrue细粒度化设置对请求压缩做一些更细致的设置比如下面的配置内容指定压缩的请求数据类型并设置了请求压缩的大小下限只有超过这个大小的请求才会进行压缩spring.cloud.openfeign.compression.request.enabledtruespring.cloud.openfeign.compression.request.mime-typestext/xml,application/xml,application/json #触发压缩数据类型spring.cloud.openfeign.compression.request.min-request-size2048 #最小触发压缩的大小openfeign: compression: request: enabled: true min-request-size: 2048 #最小触发压缩的大小 mime-types: text/xml,application/xml,application/json #触发压缩数据类型 response: enabled: true5、日志打印Feign 提供了日志打印功能我们可以通过配置来调整日志级别从而了解 Feign 中 Http 请求的细节说白了就是对Feign接口的调用情况进行监控和输出。NONE默认的不显示任何日志BASIC仅记录请求方法、URL、响应状态码及执行时间HEADERS除了 BASIC 中定义的信息之外还有请求和响应的头信息FULL除了 HEADERS 中定义的信息之外还有请求和响应的正文及元数据。Configuration public class FeignConfig{ Bean public Retryer myRetryer(){ return Retryer.NEVER_RETRY; //默认 } //配置日志级别 Bean Logger.Level feignLoggerLevel() { return Logger.Level.FULL; } }# feign日志以什么级别监控哪个接口 logging: level: com: atguigu: cloud: apis: PayFeignApi: debug
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设的几大要素如何制作一个完整的网页

深入探索 PowerShell:扩展功能与高级应用 1. 查询 SQL 数据源 在 PowerShell 中查询 SQL 数据源时,需要先准备好连接字符串。以下是具体步骤: 1. 准备连接字符串 :根据提供的信息构建连接字符串。 $connectionString = "Provider=sqloledb; " +"Data…

张小明 2026/1/11 15:58:39 网站建设

惠州网站制作网站国外域名注册哪个便宜

Unity游戏翻译高效解决方案:XUnity.AutoTranslator完整使用指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是Unity游戏开发中实现多语言自动翻译的完整解决方案&am…

张小明 2026/1/11 17:25:32 网站建设

做交易网站天长企业网站制作

高效实践:掌握知识的秘诀 在学习和成长的道路上,我们常常阅读各种重要的书籍,希望从中获取有用的知识,但很多时候,我们只是表面上了解了这些知识,却无法真正掌握并应用它们。高效实践(Productive Practice)为我们提供了一种有效的方法,帮助我们将知识转化为实际能力。…

张小明 2026/1/11 17:53:39 网站建设

信息网站有哪些网站 色调

项目简介基于 SpringBoot 的出差报销管理系统,直击 “传统报销流程繁琐、票据审核效率低、费用管控不透明” 的核心痛点,依托 SpringBoot 轻量级框架优势与流程引擎技术,构建 “全流程线上化 智能审核 数据管控” 的一体化报销管理平台。系…

张小明 2026/1/11 16:15:49 网站建设

网站开发部公众号怎么转wordpress

还在为音频配字幕头疼吗?手动打轴费时费力,专业软件又贵又复杂?现在,一个名为OpenLRC的开源神器横空出世,它巧妙融合Whisper语音识别与大语言模型翻译能力,一键实现从音频到多语言LRC字幕的全自动化流程&am…

张小明 2026/1/11 17:41:18 网站建设

网站开发项目组团队网站网络推广优化

LangFlow:当AI开发变成“搭积木” 在大模型浪潮席卷各行各业的今天,一个产品经理能否在不写一行代码的情况下,快速验证一个智能客服机器人的想法?一名刚接触LangChain的学生,是否可以在半小时内亲手搭建出一个具备检索…

张小明 2026/1/10 13:42:41 网站建设