摘要: 在 Java 中,任何对象都有生命周期,Servlet 也不例外。Servlet 的生命周期如图 1 所示。 图 1 Servlet生命周期 图 1 描述了 Servlet 的生命周期。按照功能的不同,大致可以将 Servlet 的生命周期分为三个阶段,分别是初始化阶段、运行阶段和销毁阶段。 1)初 阅读全文
posted @ 2022-06-10 15:41 zydbky 阅读(1017) 评论(0) 推荐(0) 编辑
摘要: 前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。 确实,spring事务用起来贼爽,就用一个简单的注 阅读全文
posted @ 2022-06-10 15:38 zydbky 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 对于一个应用而言,事务的使用基本是不可避免的。虽然 Spring 给我们提供了开箱即用的事务功能 @Transactional,但是,自带的事务功能却也存在控制粒度不够的缺点。更糟糕的是,@Transactional在某些情况下就失效了。可能一些读者 baidu/google 一下解决办法后,失效的 阅读全文
posted @ 2022-06-10 15:36 zydbky 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 学习之前,我们先来了解一下IO模型: ①同步阻塞IO(Blocking IO):即传统的IO模型。 ②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 阅读全文
posted @ 2022-06-10 13:48 zydbky 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。 一、早期我们怎么进行数据库操作 1、原理一般来说,Java应用程序访问数据库的过程是:①装载数据库驱动程序;②通过jdbc建立数据库连接;③访问数据库,执行sql语句;④断开数据库连接。2 阅读全文
posted @ 2022-06-10 13:38 zydbky 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 分库分表原则 关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技术(有些地方也称为Sharding、分片)。同时,流行的分布 阅读全文
posted @ 2022-06-10 09:51 zydbky 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓 阅读全文
posted @ 2022-06-10 09:49 zydbky 阅读(4605) 评论(0) 推荐(1) 编辑