长沙营销型网站,重庆企业网站优化,室内设计联盟模型下载,本地邵阳网站建设OpenFeign#xff1a;服务调用与负载均衡#xff08;服务端接口#xff09;
是什么#xff1a;通过OpenFeign可以实现服务调用和负载均衡 OpenFeign是一个声明性web服务客户端#xff0c; 怎么用#xff1a;服务提供者提取公共接口用FrignClient标注#xff0c;服务调…OpenFeign服务调用与负载均衡服务端接口
是什么通过OpenFeign可以实现服务调用和负载均衡 OpenFeign是一个声明性web服务客户端 怎么用服务提供者提取公共接口用FrignClient标注服务调用者POMyml主启动然后业务类 当使用RestTemplate实现服务调用时要在每个微服务中定义RestTemplate对象然后手动设置要调用的微服务的名字再使用该对象对该微服务进行调用此时每个要调用服务的微服务都要定义一个RestTemplate对象为了解决这一问题引入了OpenFeign此时只需将服务提供者所提供的方法在公共微服务中相应的接口中声明并用FeignClients(‘服务提供者名’)标注该接口此时公共微服务要引入spring-cloud-starter-openfeign依赖才可使用FeignClients注解此时就代表服务提供者将其要提供的服务放到公共的接口中该接口中的方法必须与所提供的服务方法有一致的路径XxxMapping()接口方法名字可以不相同当服务调用者要调用对应微服务提供的服务时就可以使用openfrign进行调用首先要在该微服务中引入spring-cloud-starter-openfeignPOM依赖然后改yml然后再修改启动类加入EnableFeign注解来开启OpenFeign然后此时在controller中通过自动装配定义要调用服务所提供的接口类对象然后就可以通过该对象调用对应的方法实现对应的服务 超时控制在yml中设置全局或者单个超时时间 在调用者通过Openfeign调用微服务时会有两个关于超时的配置分别是connectTimeout和readTimeoutconnectTimeout是调用者连接到提供者的超时控制而readTimeout是连接上后完成服务调用直到返回所限制的超时时间默认是60秒即当服务调用时间超过60s未返回时就会报错可以在服务调用者客户端上通过修改yml文件来配置超时时间谁发起调用就配置谁的yml文件通过修改 spring.cloud.openfeign.client.config.dafault.readtimeout 来设置全局请求所有调用请求的超时控制也可以单独指定某个服务调用的超时控制通过修改 spring.cloud.openfeign.client.config.服务名.readtimeout 来实现两个可以共存且单个配置会覆盖全局配置 重试机制默认是关闭的只要第一个调用失败则直接返回在配置类开启重试机制 可以开启重试机制当调用失败后会重新发起请求在调用者客户端微服务中创建FeignConfig配置类Configuration注解标注然后用Bean注解标注 Retry myRetry(){} 方法在该方法中默认 return Retry.NEVER_RETRY;(默认是不进行重试的)此时可以修改return Retry.default(初次间隔时间,最大间隔时间,请求总次数)来开启重试机制此时当第一次请求失败后会间隔时间后重新发起调用请求直到规定次数失败后才会返回报错 性能优化HttpClient5一定要替换先引入POM依赖再在yml中进行配置 OpenFeign默认使用JDK中自带的HttpClient.HttpURLConnection发送HTTP请求没有连接池、性能和效率也比较低此时就可以修改OpenFeign的连接此时可以使用Apache 的HttpClient5来替换以提高性能先修改POM中的依赖导入HC5的依赖然后修改调用者的yml配置文件spring.cloud.openfeign.httpclient.hc5.enabledtrue以开启HC5来替换默认的HttpClient 请求回应压缩直接在yml中开启压缩 使用OpenFeign进行服务调用时可以对请求和回应进行GZIP压缩以减少通信过程中性能损耗要通过参数 **spring.cloud.openfeign.compression.request/response.enabledtrue 来开启请求和回应的数据压缩 日志打印对Feign的接口调用情况进行监控和输出先在配置类开启日志级别再在yml中配置对哪个接口进行监控 先在配置类开启日志级别再在yml中配置对哪个接口进行监控首先要在需要开启日志功能的客户端微服务中的FeignConfig配置类中配置Bean:Logger.Level来返回所选择开启的日志级别Logger.Level.Xxx然后在yml配置文件中开启日志功能提供设置logging.level.含有FeignClient注解的接口的完整包名和接口名debug表示开启日志监控哪个接口的调用情况![[Pasted image 20241011152041.png]]OpenFeign提供日志打印功能了解请求的细节对Feign的接口调用情况进行监控和输出有四个日志级别NULL、BASIC、HEADER、FULL默认是NULL不会记录任何日志信息BASIC记录了请求的url、请求方法等信息HEADER记录了请求和响应的头信息FULL全部信息都记录了正文和元数据等