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

公司网站建设周期及费用微信公共平台开发

公司网站建设周期及费用,微信公共平台开发,微网站解决方案,宝塔面板做网站不能打开PHP显示404文章目录 前言正文一、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/14341334/

相关文章:

  • 河南艾特 网站建设怀来网站seo
  • 做网站代理怎么赚钱如何推荐别人做网站
  • 贸易公司自建免费网站wordpress建站访问不了
  • 建设我们的网站wap网站开发和自适应
  • 公司网站不备案wordpress判断语句
  • 电脑做微信推送的网站扬州建设教育信息网站
  • 新乡市红旗区建设局网站永德网站建设
  • wordpress怎么加入站长统计教育网站制作公司
  • 湖南沙坪建设集团有限公司网站网站建设项目报价
  • 十堰市有几家网站公司网站建设技术经理岗位职责
  • 企业做外贸网站常用术语软文网站开发
  • 做网站搭建环境申办网站流程
  • 国内大型网站制作网站系统架构图
  • 做网站如何赚流量钱windows优化大师是系统软件吗
  • 漳州网站建设网站制作网站建设与网页设计教程视频
  • 做网站模块山东省住房建设厅网站考试项目
  • 青岛seo整站优化免费注册帐号
  • led灯具网站模板电脑培训机构哪个好
  • 打电话给客户怎样介绍自己是做网站的?开场白?seo 网站标题长度
  • 网站备案负责人一定要法人泰安房产网信息网官网
  • 有什么教做维c甜品的网站四川建设网招标网
  • 成都建站价格大型门户网站系统
  • 旅游网站建设论文题目个人怎样建设网站
  • 第八章 电子商务网站建设课件怎么把网站排名排上去
  • iis为网站子目录绑定二级域名搜索引擎网络排名
  • 网站关键词怎么添加个人网站logo
  • 长基建站手机网站建设用乐云seo
  • 网站建设实施过程乱起封神是那个网站开发的
  • 南京价格网站建设网站建设的基本目标
  • 山东德州如何网站建设教程Wordpress税