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

JAVA八股与代码实践----如何为springboot设置Servlet容器为jetty,jetty的优点是什么?

1、实践

排除原来的springboot-web依赖(默认是tomcat),加入jetty的依赖

<dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!-- Jetty --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>
</dependencies>

tomcat会对每个请求都分配一个线程,而jetty不会对每个请求都分配一个线程,而是共用线程池中的线程,所以如果需要,可以设置线程池的参数

server.jetty.threads.max=200
server.jetty.threads.min=8

其他的都可以不用改,运行项目

jetty启动成功

2、jetty有什么优势?

jetty适合高并发的场景、实时通信的场景。

jetty线程模型的工作原理:以 Jetty 的非阻塞 I/O 和异步请求处理为例:
  1. 请求到达

    • 客户端发送请求,Jetty 通过 Selector 监听到连接事件。
    • 如果请求数据已经完全到达(如 HTTP 报文),Jetty 会立即将请求交给线程池处理。
  2. 挂起请求

    • 如果请求需要耗时操作(如数据库查询),Jetty 会挂起该请求,释放线程。
    • 在挂起状态下,请求不占用任何线程。
  3. 等待事件

    • 当异步操作完成(如数据库返回结果)或 I/O 就绪(如网络缓冲区可用),Jetty 会监听到事件。
  4. 恢复请求

    • Jetty 将挂起的请求重新交给线程池处理,从挂起点继续执行,直至完成。
http://www.lryc.cn/news/489461.html

相关文章:

  • idea怎么打开两个窗口,运行两个项目
  • wend看源码-APISJON
  • 堆外内存泄露排查经历
  • SpringBoot Task
  • 学习路之压力测试--jmeter安装教程
  • 大模型部署,运维,测试所需掌握的知识点
  • ECharts柱状图-带圆角的堆积柱状图,附视频讲解与代码下载
  • java 并发编程 (2)Thread 类和 Runnable 接口详解
  • 人工智能之数学基础:线性代数在人工智能中的地位
  • PostgreSQL WITH 子句:提高查询效率和可读性
  • TransFormer--解码器:前馈网络层、叠加和归一组件
  • 2024亚太杯国际赛C题参考文章50页+完整解题思路+数据处理+最终结果
  • Kafka 分区分配及再平衡策略深度解析与消费者事务和数据积压的简单介绍
  • useEffect、useCallback、useMemo和memo的区别
  • layui树形组件点击树节点后高亮的解决方案
  • 大语言模型(LLM)安全:十大风险、影响和防御措施
  • 02 —— Webpack 修改入口和出口
  • Go语言进阶依赖管理
  • 集成了高性能ARM Cortex-M0+处理器的一款SimpleLink 2.4 GHz无线模块-RF-BM-2340B1
  • ffmpeg本地编译不容易发现的问题 — Error:xxxxx not found!
  • mybatis——Mapper代理方式
  • FreeRTOS——消息队列
  • 【题解】—— LeetCode一周小结46
  • Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
  • python里的数据结构
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第二十一集:制作游戏的金钱系统吉欧Geo和初步制作HUD Canvas的额外内容
  • 底层逻辑之:极大似然方法(Maximum Likelihood Estimation, MLE)
  • 笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
  • 【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
  • 深入探索Go语言中的sync.Mutex与sync.RWMutex:原理、应用与实践