数据库连接池和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业务代码之间的桥梁"。

相关推荐
Database_Cool_1 小时前
云原生多租户隔离 + 近实时分析怎么选型?阿里云 AnalyticDB MySQL 资源隔离方案
数据库·mysql·阿里云
小马爱打代码7 小时前
Redis 集群方案详解:主从复制、哨兵、脑裂、分片集群和哈希槽
数据库·redis·哈希算法
刀法如飞8 小时前
AI时代:DDD领域驱动建模与Ontology语义建模的区别
java·设计模式·架构
jeffer_liu8 小时前
Spring AI 生产级实战:工具调用
java·人工智能·后端·spring·ai编程
比昨天多敲两行8 小时前
linux 线程概念与控制
java·开发语言·jvm
8Qi88 小时前
LeetCode 75:颜色分类(荷兰国旗问题)—— Java 题解 ✅
java·算法·leetcode·指针·排序
zzhongcy8 小时前
@Transactional 同类内部调用失效 + 两种自代理解决方案
java
海南java第二人9 小时前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
Litluecat9 小时前
信创迁移:Oracle切换海量数据库,慢sql扫描
数据库·sql·oracle·信创·海量