数据库连接池和java servlet

数据库 连接池 和 java servlet

  1. 连接池是一个"限流器",设小了限死性能,设大了可能拖垮数据库

  2. 线程池决定"请求并发",连接池决定"数据库并发"

  3. 线程池和连接池都在"应用侧",不是数据库侧

  4. 一个线程在执行SQL时,会占用一个连接,用完之后,连接会归还连接池

  5. 举个例子:

线程A → 拿连接1 → 执行SQL → 归还

线程B → 拿连接1 → 执行SQL → 归还

  1. 连接池是你这个服务的一部分,不是数据库的一部分

  2. 线程池负责"处理请求",连接池负责"访问数据库"

  3. 数据库本身只负责接受连接和执行SQL,不负责连接池管理。

  1. 浏览器 → Tomcat → Spring Boot应用 → 返回结果

  2. Tomcat:负责"网络层"(HTTP),Spring Boot:负责"业务逻辑"

  3. Spring Boot 不依赖 Tomcat,只是默认用它

  4. 应用需要部署到外部 Tomcat 上运行,而 Spring Boot 默认采用内嵌 Tomcat 的方式,将 Web 服务器和应用打包在一起,通过一个 jar 包即可运行。Tomcat 负责接收和处理 HTTP 请求,并将请求转发给 Spring Boot 应用中的 Controller 处理业务逻辑。

  1. Servlet 容器是用于运行和管理 Servlet 的运行环境,它负责接收 HTTP 请求,将请求转换为 Java 对象,分发给对应的 Servlet 处理,并将处理结果返回给客户端。同时它还负责 Servlet 的生命周期管理、线程调度等。常见的 Servlet 容器有 Tomcat。Spring Boot 应用通常运行在内嵌的 Servlet 容器中。

  2. Servlet 容器本质上是"HTTP协议和Java业务代码之间的桥梁"。

相关推荐
IvorySQL4 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
刘胡子大叔4 小时前
SQL 脚本的导入顺序
数据库·sql
代码什么用5 小时前
Spring基础使用
java·后端·spring
代码什么用5 小时前
Spring对IoC的实现
数据库·spring
Su米苏5 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园5 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁5 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网6 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西6 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨6 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言