maven引入依赖

<dependency><groupId>org.jodd</groupId><artifactId>jodd-http</artifactId><version>5.1.4</version>
</dependency>

设置keepalive java配置:

@Configuration
public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {@Overridepublic void customize(ConfigurableWebServerFactory factory) {//使用对应工厂类提供给我们的接口定制化我们的tomcat connector((TomcatServletWebServerFactory) factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {@Overridepublic void customize(Connector connector) {Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();//定制KeepAliveTimeout,设置10秒内没有请求则服务器自动断开keepalive连接protocol.setKeepAliveTimeout(10000);//当客户端发送超过5个请求则自动断开keepalive连接protocol.setMaxKeepAliveRequests(5);}});}
}

测试代码:

@Slf4j
public class TestHttp11 {public static void main(String[] args) throws Exception {HttpResponse response = null;for (int i = 0; i < 12; i++) {response = http11(i, response, i == (10 - 1));Thread.sleep(9000);if (i > 1) {Thread.sleep(3000);}}}/*服务端设置最大请求次数(MaxKeepAliveRequests)为5,超时时间(KeepAliveTimeout)为10秒1、请求10次,每次间隔1秒抓包发现5次后服务端返回  Connection: close第6次请求无异常 创建新的连接2、请求3次,每次间隔12秒第二次请求后异常报错3、请求3次,每次间隔9秒无异常4、请求6次,1-2次间隔9秒,2次以后间隔12秒第四次后异常<dependency><groupId>org.jodd</groupId><artifactId>jodd-http</artifactId><version>5.1.4</version></dependency>*/public static HttpResponse http11(int num, HttpResponse response, boolean last) throws UnsupportedEncodingException {HttpRequest request = HttpRequest.get("http://127.0.0.1:8080/test/http11?num=" + num);if (response == null) {response = request.connectionKeepAlive(true).send();} else {if (!last) {response = request.keepAlive(response, true).send();} else {response = request.keepAlive(response, false).send();}}String info = new String(response.body().getBytes("iso8859-1"), "utf-8");System.out.println(info);return response;}}

源码下载:
https://download.csdn.net/download/zjh1n795/16135081

参考:
https://blog.csdn.net/weixin_41657493/article/details/90819987
https://blog.51cto.com/15015181/2556402?source=drt

springboot 长连接 keepalive 记录相关推荐

  1. 前端面试题必考(四)- HTTP短连接,长连接(keep-alive),websocket,postmessage

    一.HTTP与TCP的关系 HTTP属于应用层协议,主要解决如何包装数据: 在传输层使用TCP协议,主要解决数据如何在网络中传输: 在网络层使用IP协议,主要解决网络路由和寻址问题: HTTP把TCP ...

  2. TCP长连接和短链接

    目录 短连接 长连接 keepalive功能 中间设备删除超时的连接过程 TCP keepalive交互过程 TCP keepalive带来的问题: 为什么需要长连接? http keepalive ...

  3. Netty(一) SpringBoot 整合长连接心跳机制

    https://github.com/crossoverJie/JCSprout 原创: crossoverJie 阅读原文 前言 Netty 是一个高性能的 NIO 网络框架,本文基于 Spring ...

  4. 长连接及在Node中的应用——HTTP/1.1 keep-alive

    HTTP请求都要经过TCP三次握手建立连接,四次分手断开连,如果每个HTTP请求都要建立TCP连接的话是极其费时的,因此HTTP/1.1中浏览器默认开启了Connection: keep-alive. ...

  5. 长连接和Keepalive

    TCP协议中有长连接和短连接之分.短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能. 默认的Keepalive超 ...

  6. HTTP1.1 Keep-Alive到底算不算长连接?

    ✎ 码甲说 在基础架构部浸润了半年,有一些认知刷新想和童靴们交代一下, 不一定全面,仅代表此时的认知, 也欢迎筒靴们提出看法. 本文聊一聊口嗨用语:"长连接.短连接", 文章会按照 ...

  7. 谈谈Http长连接和Keep-Alive以及Tcp的Keepalive

    一次性说清楚秒验(本机号码一键登录) 2021-03-02 技术总监面试,提问:Redis热点key解决方案 2021-02-28 [性能测试]轻量级压测工具Hey 2021-02-23 我们知道Ht ...

  8. Springboot整合Socket长连接

    Socket长连接的实现就是在通讯完后不关闭socket及输入输出 /*** @author :zhaoyu* @date :Created in 2019/1/24 8:45*/ @Data @Co ...

  9. HTTP协议中的长连接和短连接(keep-alive状态)

    什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...

最新文章

  1. 全国大学生数学建模竞赛中,哈工大被禁用MATLAB
  2. 如何解决JSP页面的乱码问题
  3. Mybatis传多个参数(推荐)
  4. 德国市占率第一的科沃斯携最新扫地机器人亮相IFA展
  5. Exchange系列—使用系统自带的备份工具来备份数据库
  6. 使用sealos安装K8S集群时,需确保节点的swap是关闭的
  7. 欢乐纪中某B组赛【2018.12.15】
  8. 解决老是提示找不到Mapper文件无法执行定义的方法问题!
  9. 新款iPhone SE是改良版iPhone 8无误了,部分零件可互换
  10. IDEA多线程下空指针断点调试
  11. 配置管理系统和整体的变化对系统有什么区别和联系
  12. 每日一道python的leetcode:冒泡排序
  13. 宽屏系统上播放幻灯片的设想
  14. 关于APP测试用例点
  15. Matlab深度学习实践之手写体识别(含详细注释)
  16. 万字综述自动驾驶数据闭环
  17. 服务器虚拟化双活,分布式双活数据中心部署模式
  18. hadoop之大数据生态系统的前世今生
  19. Git使用中的一些常用小技巧
  20. 毕业设计 基于单片机的交通安全车辆测速系统 - 嵌入式 物联网

热门文章

  1. JavaScript初学有感
  2. Docker搭建jenkins(Vue自动化部署)
  3. Linux下MongoDB自动备份
  4. 搭建阿里云 TiDB 的灾备,让我安欣睡个好觉
  5. 代码随想录【day 10 栈与队列】| 232.用栈实现队列、 225. 用队列实现栈
  6. 在Web Directions Code上获得推文并赢得Kindle Fire!
  7. Confluence 6 服务器硬件要求指南 1
  8. 我快被食人花吃掉了。
  9. win7开启热点时“无法启动承载网络”的解决方法
  10. javaweb基于SSM开发商城NBA网商购物平台 课程设计 毕业设计源码