Http请求优化

Http请求优化

我们在做项目开发或多或少的都会使用SpringCloud,其中做远程调度的时候会将HTTP请求Http请求优化。

HTTP请求Client存在很多种。

  • JDK原生的URLConnection 发送HTTP请求,没有连接池,是对每一个地址保持一个长连接,利用HTTP的persistence connection。这样极大的影响系统的并发性能。我们可以采用替换方案。

实例:

  • 我们使用Feign是 默认就是使用JDK的HTTP Client;

这时我们就可以使用别的Client进行替换:

  • 比如Apache的HttpClient 来替换原始的HttpClient。可以通过设置连接池,以及访问超时时间等服务之间的调用进行优化。
  • OKHTTP: okHttp也是一个很不错的HttpClient,具有很多优秀的特性:
    • 支持SPDY,可以合并多个到同一主机的请求;
    • 使用连接池技术减少请求的延迟;
    • 使用GZIP压缩减少传输的数据量;
    • 缓存响应避免重复的网络请求。 
    •  1 <dependency>
       2             <groupId>com.netflix.feign</groupId>
       3             <artifactId>feign-httpclient</artifactId>
       4             <version>8.17.0</version>
       5         </dependency>
       6 
       7         <dependency>
       8             <groupId>io.github.openfeign</groupId>
       9             <artifactId>feign-okhttp</artifactId>
      10         </dependency>
      11     </dependencies>
      1 feign:
      2   httpclient:
      3     enabled: false
      4   okhttp:
      5     enabled: true
    •  1 @Configuration
       2 @ConditionalOnClass(Feign.class)
       3 @AutoConfigureBefore(FeignAutoConfiguration.class)
       4 public class FeignOkHttpConfig {
       5     @Bean
       6     public okhttp3.OkHttpClient okHttpClient(){
       7         return new okhttp3.OkHttpClient.Builder()
       8                  //设置连接超时
       9                 .connectTimeout(60, TimeUnit.SECONDS)
      10                 //设置读超时
      11                 .readTimeout(60, TimeUnit.SECONDS)
      12                 //设置写超时
      13                 .writeTimeout(60,TimeUnit.SECONDS)
      14                 //是否自动重连
      15                 .retryOnConnectionFailure(true)
      16                 .connectionPool(new ConnectionPool())
      17                 //构建OkHttpClient对象
      18                 .build();
      19     }
      20 
      21 }

       

转载于:https://www.cnblogs.com/Mao-admin/p/10114603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值