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压缩减少传输的数据量;
    • 缓存响应避免重复的网络请求。
    •  <dependency>
      <groupId>com.netflix.feign</groupId>
      <artifactId>feign-httpclient</artifactId>
      <version>8.17.0</version>
      </dependency> <dependency>
      <groupId>io.github.openfeign</groupId>
      <artifactId>feign-okhttp</artifactId>
      </dependency>
      </dependencies>
       feign:
      httpclient:
      enabled: false
      okhttp:
      enabled: true
    •  @Configuration
      @ConditionalOnClass(Feign.class)
      @AutoConfigureBefore(FeignAutoConfiguration.class)
      public class FeignOkHttpConfig {
      @Bean
      public okhttp3.OkHttpClient okHttpClient(){
      return new okhttp3.OkHttpClient.Builder()
      //设置连接超时
      .connectTimeout(60, TimeUnit.SECONDS)
      //设置读超时
      .readTimeout(60, TimeUnit.SECONDS)
      //设置写超时
      .writeTimeout(60,TimeUnit.SECONDS)
      //是否自动重连
      .retryOnConnectionFailure(true)
      .connectionPool(new ConnectionPool())
      //构建OkHttpClient对象
      .build();
      } }

Http请求优化的更多相关文章

  1. SQL请求优化——请求次数统计,SQL写操作稀释

    引言 前几天做了这么一个东西:一个游戏中有个活动页面,活动页面有个商品,商品下面要显示该商品实浏览次数,就相当于是用户每出发一次请求这个浏览总次数都会添加一次,这个问题很简单,每次浏览的时候去数据库中 ...

  2. JS系列1---节流,去抖(防抖)应用场景:intput请求优化,页面监听

    在项目开发过程中经常遇到在input的change事件中发起请求,将用户最新输入的字符作为data传给后台,但是如果用户的输入频率过高,或者用户输入的字符还未拼成一个完整的字词,这时候发起请求会浪费网 ...

  3. 浅析列表页请求优化(history API)

    最近搞了下列表页请求的功能,并做了一下调研整理,记此文备忘. 列表页请求的功能到处可见,比如在博客园. 点击相应的页码,页面返回相应的内容,看上去似乎大同小异,但是一些小的细节还是可以区分优劣. fu ...

  4. PHP网络请求优化

    目录 1. 设置超时时间 2. 将串行请求并行化 1. 设置超时时间 连接超时:200ms 读超时: 800ms 写超时: 500ms 2. 将串行请求并行化 使用curl_multi_*() 使用s ...

  5. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  6. Laravel 5 性能优化技巧

    说明 性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能. 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论. 这里是简单的列表 ...

  7. 使用nginx-http-concat优化网站响应

    前言: 我们在访问淘宝的时候,会看到代码中的js和css文件是通过一次请求或得的,我们知道浏览器一次请求只能并发访问数个资源,这样的处理错输在网络传输层面可以大大节省时间,这里使用的技术就是把css. ...

  8. mysql笔记01 MySQL架构与历史、Schema与数据类型优化

    MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解 ...

  9. 深度优化LNMP之Nginx (转)

    深度优化LNMP之Nginx Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息     一般来说,软件的漏洞都和版本有关,因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息(例 ...

随机推荐

  1. API接口利用ActionFilterAttribute实现接口耗时检测

    1.主要代码 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; ...

  2. linq to xml运用示例

    代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...

  3. 如何解决windows 80端口被占用的情况

    window下如果在安装某个软件或者启动tomcat时 会遇到80端口被占用的情况,通过命令 netstat -ano 查看端口被占用情况 找到占用80端口的进程ID,然后我们在任务管理器当中将这个进 ...

  4. wpf menuitem 简约显示的 template样式

    <ControlTemplate x:Key="MenuItemControlTemplate1" TargetType="{x:Type MenuItem}&qu ...

  5. day12 css样式

    目录 1.标签分类   2.浮动布局   3.margin塌陷   4.定位postion   5.背景图 一. 标签分类 默认在标准文档流 行内标签 span,a,em,i,strong,b,inp ...

  6. 使用webpack + momentjs时, 需要注意的问题

    注意开发HTML页面charset, 如是不是utf-8, 比如是shift_jis,  一般会在webpack里用插件EncodingPlugin把开发的utf-8格式转码成shift_jis格式 ...

  7. 《Redis高阶应用》讲座总结

    数据结构延展 常用数据结构:String,Hash,List,Set,Sorted Set(不聊这些) 高级数据结构:Bitmaps,hyperloglog,GEO 单机拓展到分布式 为什么要分区:性 ...

  8. Delphi 画布对象

    樊伟胜

  9. Scala(二)——基础语法(与Java的区分)和函数式编程

    Scala快速入门(二) 一.键盘输入 关于基本类型的运算,以及复制运算,条件运算,运算符等知识,均和Java语言一样,这里不过多叙述. val name = StdIn.readLine() Std ...

  10. selenium+chromedriver+python3 不加载图片

    from selenium import webdriver chrome_options = webdriver.ChromeOptions() prefs={} chrome_opt.add_ex ...