当前位置: 首页 > news >正文

搜索排名优化网站排名优化学院网站建设情况总结

搜索排名优化网站排名优化,学院网站建设情况总结,学网站开发培训班,线下推广活动方案文章目录 前言正文一、OkHttpFeignConfiguration 的启用1.1 分析配置类1.2 得出结论#xff0c;需要增加配置1.3 调试 二、OkHttpFeignLoadBalancerConfiguration 的启用2.1 分析配置类2.2 得出结论2.3 测试 附录附1#xff1a;本系列文章链接附2#xff1a;OkHttpClient 增… 文章目录 前言正文一、OkHttpFeignConfiguration 的启用1.1 分析配置类1.2 得出结论需要增加配置1.3 调试 二、OkHttpFeignLoadBalancerConfiguration 的启用2.1 分析配置类2.2 得出结论2.3 测试 附录附1本系列文章链接附2OkHttpClient 增加拦截器配置附2.1 新建配置类OkHttpConfig附2.2 调试结果 前言 众所周知我们在使用SpringCloud OpenFeign时默认使用的是老旧的连接器HttpURLConnection。性能以及并发量方面都差强人意。 一般而言都会对其进行优化调整。本文采用OpenFeign整合okHttp的方式替换原有的Client去做请求。 使用java 17spring cloud 4.0.4springboot 3.1.4 使用项目是本系列第一篇中的项目 本文介绍两种方式的配置一个是LoadBalancer 的都是默认带有连接池的。 OkHttpFeignConfigurationOkHttpFeignLoadBalancerConfiguration 正文 一、OkHttpFeignConfiguration 的启用 1.1 分析配置类 首先我们需要加入什么依赖配置呢 依据 OkHttpFeignConfiguration 的配置内容进行分析 Configuration(proxyBeanMethods false) ConditionalOnClass(OkHttpClient.class) ConditionalOnMissingBean(okhttp3.OkHttpClient.class) ConditionalOnProperty(spring.cloud.openfeign.okhttp.enabled) protected static class OkHttpFeignConfiguration {// 类路径下有连接池时构建连接池BeanConditionalOnMissingBean(ConnectionPool.class)public ConnectionPool httpClientConnectionPool(FeignHttpClientProperties httpClientProperties) {int maxTotalConnections httpClientProperties.getMaxConnections();long timeToLive httpClientProperties.getTimeToLive();TimeUnit ttlUnit httpClientProperties.getTimeToLiveUnit();return new ConnectionPool(maxTotalConnections, timeToLive, ttlUnit);}// 构建OkHttpClient实例Beanpublic okhttp3.OkHttpClient okHttpClient(okhttp3.OkHttpClient.Builder builder, ConnectionPool connectionPool,FeignHttpClientProperties httpClientProperties) {boolean followRedirects httpClientProperties.isFollowRedirects();int connectTimeout httpClientProperties.getConnectionTimeout();boolean disableSslValidation httpClientProperties.isDisableSslValidation();Duration readTimeout httpClientProperties.getOkHttp().getReadTimeout();ListProtocol protocols httpClientProperties.getOkHttp().getProtocols().stream().map(Protocol::valueOf).collect(Collectors.toList());if (disableSslValidation) {disableSsl(builder);}this.okHttpClient builder.connectTimeout(connectTimeout, TimeUnit.MILLISECONDS).followRedirects(followRedirects).readTimeout(readTimeout).connectionPool(connectionPool).protocols(protocols).build();return this.okHttpClient;} } 1.2 得出结论需要增加配置 从配置类中观察到它的启用条件有2个一个是需要引入 okhttp的包另一个需要一行启用配置 !-- https://mvnrepository.com/artifact/io.github.openfeign/feign-okhttp -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-okhttp/artifactIdversion13.1/version /dependency# 启用okhttp配置 spring.cloud.openfeign.okhttp.enabledtrue1.3 调试 正常请求在SynchronousMethodHandler.executeAndDecode(...) 中打断点调试观察client的类型 发现已经不再是之前的Default 了换成了OkHttpClient 类型。并且也内置了连接池以及一些基本配置信息。 二、OkHttpFeignLoadBalancerConfiguration 的启用 2.1 分析配置类 依据 OkHttpFeignLoadBalancerConfiguration 中的配置项分析 Configuration(proxyBeanMethods false) ConditionalOnClass(OkHttpClient.class) ConditionalOnProperty(spring.cloud.openfeign.okhttp.enabled) ConditionalOnBean({ LoadBalancerClient.class, LoadBalancerClientFactory.class }) EnableConfigurationProperties(LoadBalancerClientsProperties.class) class OkHttpFeignLoadBalancerConfiguration {BeanConditionalOnMissingBeanConditional(OnRetryNotEnabledCondition.class)public Client feignClient(okhttp3.OkHttpClient okHttpClient, LoadBalancerClient loadBalancerClient,LoadBalancerClientFactory loadBalancerClientFactory,ListLoadBalancerFeignRequestTransformer transformers) {OkHttpClient delegate new OkHttpClient(okHttpClient);return new FeignBlockingLoadBalancerClient(delegate, loadBalancerClient, loadBalancerClientFactory,transformers);}// 省略其他配置 }2.2 得出结论 想要让这个配置生效需要满足OkHttpClient、LoadBalancerClient、OnRetryNotEnabledCondition。 也就是2个依赖项2个配置 !-- https://mvnrepository.com/artifact/io.github.openfeign/feign-okhttp -- dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-okhttp/artifactIdversion13.1/version /dependency !-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-loadbalancer -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactIdversion4.0.4/version /dependency而配置方面需要增加 # 启用okhttp配置 spring.cloud.openfeign.okhttp.enabledtrue# 关闭负载重试 spring.cloud.loadbalancer.retry.enabledfalse2.3 测试 正常请求在SynchronousMethodHandler.executeAndDecode(...) 中打断点调试观察client的类型 发现已经不再是之前的Default 了换成了OkHttpClient 类型。 附录 附1本系列文章链接 SpringCloud系列文章目录总纲篇 附2OkHttpClient 增加拦截器配置 附2.1 新建配置类OkHttpConfig 增加以下拦截器配置对请求和响应进行日志打印。 package org.feng.config;import lombok.extern.slf4j.Slf4j; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import java.io.IOException;/*** okhttp配置** author feng*/ Slf4j Configuration public class OkHttpConfig {Beanpublic okhttp3.OkHttpClient.Builder okHttpClientBuilder() {return new okhttp3.OkHttpClient.Builder().addInterceptor(new LoggingInterceptor());}/*** okhttp3 请求日志拦截器*/static class LoggingInterceptor implements Interceptor {NotNullOverridepublic Response intercept(Chain chain) throws IOException {Request request chain.request();long start System.nanoTime();log.info(String.format(Sending request %s on %s%n%s,request.url(), chain.connection(), request.headers()));Response response chain.proceed(request);long end System.nanoTime();log.info(String.format(Received response for %s in %.1fms%n%s,response.request().url(), (end - start) / 1e6d, response.headers()));return response;}} } 附2.2 调试结果 可以观察到日志中打印出来了请求路径、请求头等信息。 2023-11-24T16:48:56.35808:00 INFO 35987 --- [nio-8080-exec-1] org.feng.config.OkHttpConfig : Sending request http://localhost:10080/hello/post on null Content-Length: 100 Accept: */*2023-11-24T16:48:56.71308:00 INFO 35987 --- [nio-8080-exec-1] org.feng.config.OkHttpConfig : Received response for http://localhost:10080/hello/post in 347.4ms Content-Type: application/json Transfer-Encoding: chunked Date: Fri, 24 Nov 2023 08:48:56 GMT Keep-Alive: timeout60 Connection: keep-alive
http://www.hkea.cn/news/14487175/

相关文章:

  • 河南艾特 网站建设腾讯云手动搭建wordpress个人站点
  • 做seo网站的公司设计外贸网站
  • 简约、时尚、高端 网站建设简单flash个人网站
  • 网站建设推广刘贺稳1ks免费刷粉网站推广
  • 免费建网站域名焦作官网网站推广工具
  • 南京哪家做网站好天眼查企业查询app
  • 上海专业网站建站公广州建外贸网站公司简介
  • 网站开发环境安装程序河北涿州建设局网站
  • 深圳市住房与建设局实名制网站广州有名的网站建设公司
  • 网站做SEO优化多少钱wordpress登录用添加验证码
  • 电商网站seo公司国家建设官方网站
  • 购物网站有哪些模块秦皇岛网站seo
  • 海南网站建设报价方案搞个平台要花多少钱
  • 在家做网站设计专业的网站搭建多少钱
  • 寻找五屏网站建设斯特云流量网站
  • 商务网站模块设计时前台基础设施建设不包括怎么在网上开店
  • 网站开发需求分析实例绿色大气网站模板
  • 昆明网站建设公司哪家口碑好移动互联网开发的关注点
  • 福州有名的公司网站设计网销怎么找客户资源
  • 网站标题的设置方法网站页面设计价格
  • 专门做诺丽果的网站温州做网站哪家公司最好
  • 北京网站开发周期企业网站建设的主要步骤
  • 建设申请网站做网站合同模板
  • 为什么做网站推广没有网站可以做京东联盟吗
  • 廊坊高端网站建设wordpress分类模板制作
  • 给网站建设提意见怎么制作网页里面的内容
  • com网站域名注册保险公司网站建设方案
  • 网站建设中页面下载支付宝网页版登录入口
  • 企业网站申请永久oa办公系统开发
  • 成都网站建设哪家好精湛的赣州网站建设