描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111633211
编辑推荐
(1)作者是曾就职于阿里等企业的有10余年工作经验的架构师和数据库连接池专家,对HikariCP在内的各种数据库连接池技术都有深入研究。
(2)作者为Apache ShardingSphere、Apache Skywalking等知名开源项目的技术社区做出过重要贡献。
(3)本书在出版前得到了褚霸、德哥、张亮、吴晟等近10位来自阿里、*等知名企业的专家的高度评价和一致推荐,同时在社区里也到了广泛好评。
(4)本书从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度对HikariCP进行全面讲解和深入分析。
(2)作者为Apache ShardingSphere、Apache Skywalking等知名开源项目的技术社区做出过重要贡献。
(3)本书在出版前得到了褚霸、德哥、张亮、吴晟等近10位来自阿里、*等知名企业的专家的高度评价和一致推荐,同时在社区里也到了广泛好评。
(4)本书从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度对HikariCP进行全面讲解和深入分析。
内容简介
这是一本从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度全面讲解数据库连接池HikariCP的著作。得到了褚霸、德哥、张亮、吴晟等近10位来自阿里、*等互联网企业的技术专家的高度评价,同时也在社区里获得广泛好评。
系统性上,从基本功能,到扩展技术,内容涵盖HikariCP的方方面面;深度上,从原理阐述到源码分析,直击HikariCP的本质;实操性上,不仅有小案例和综合性的大案例,还有对疑难问题的解决方案。
全书共14章,在逻辑上分为四大部分:
准备篇(1~3章) 以阿里连接池极致优化案例展示了不使用连接池和使用连接池的QPS天壤之别,带领读者了解数据库连接池的背景、原理及历史,以及本书的主角HikariCP。
基础篇(4~5章) 系统梳理HikariCP的基础知识,包含参数配置、JDBC等核心模块,这些内容都是HikariCP基础的重中之重。
原理篇(6~9章) 直击HikariCP的“灵魂”,深入浅出地分析了HikariCP的原理。首先,全方位的剖析了HikariCP性能极致的原因,这些都会成为读者面试、工作中的谈资; 其次,从连接原理、参数原理、动态代理与字节码技术等三个维度作为切入口,分别对HikariCP进行了源码级别的解析,这样全方位的剖析不同于单视角的源码解析,更能将HikariCP的原理立体化的展示在读者面前。
实战篇(10~14章) 这是本书的精华部分。HikariCP的监控、扩展技术、常见问题等都是读者工作中较为迫切了解到、使用到的知识点,这些内容大多来自作者多年实战经验的积累及大量文献资料的收集整理,内容包罗万象、精妙绝伦。
系统性上,从基本功能,到扩展技术,内容涵盖HikariCP的方方面面;深度上,从原理阐述到源码分析,直击HikariCP的本质;实操性上,不仅有小案例和综合性的大案例,还有对疑难问题的解决方案。
全书共14章,在逻辑上分为四大部分:
准备篇(1~3章) 以阿里连接池极致优化案例展示了不使用连接池和使用连接池的QPS天壤之别,带领读者了解数据库连接池的背景、原理及历史,以及本书的主角HikariCP。
基础篇(4~5章) 系统梳理HikariCP的基础知识,包含参数配置、JDBC等核心模块,这些内容都是HikariCP基础的重中之重。
原理篇(6~9章) 直击HikariCP的“灵魂”,深入浅出地分析了HikariCP的原理。首先,全方位的剖析了HikariCP性能极致的原因,这些都会成为读者面试、工作中的谈资; 其次,从连接原理、参数原理、动态代理与字节码技术等三个维度作为切入口,分别对HikariCP进行了源码级别的解析,这样全方位的剖析不同于单视角的源码解析,更能将HikariCP的原理立体化的展示在读者面前。
实战篇(10~14章) 这是本书的精华部分。HikariCP的监控、扩展技术、常见问题等都是读者工作中较为迫切了解到、使用到的知识点,这些内容大多来自作者多年实战经验的积累及大量文献资料的收集整理,内容包罗万象、精妙绝伦。
目 录
赞誉
前言
第一篇 准备篇
第1章 阿里中间件实战,第一个案例 2
1.1 物联网MQTT单机压测130万参数调优 2
1.2 阿里中间件TCP四次挥手性能调优实战 4
1.2.1 亿级消息网关Rowan架构 4
1.2.2 人脸识别服务:异曲同工的架构 6
1.2.3 “双十一大促”全链路压测发现TCP问题 9
1.2.4 Linux内核网络参数调优 11
1.2.5 Linux TCP参数调优 12
1.2.6 一行代码大幅提升QPS 13
1.3 技术驱动业务,结果为导向 16
1.4 本章小结 17
第2章 数据库连接池江湖 19
2.1 为什么使用数据库连接池 19
2.2 数据库连接池原理 22
2.3 数据库连接池百晓生《兵器谱》 23
2.3.1 c3p0 24
2.3.2 Proxool 29
2.3.3 XAPool 30
2.3.4 DBCP 32
2.3.5 Tomcat JDBC Pool 34
2.3.6 BoneCP 36
2.3.7 Druid 38
2.4 主流数据库连接池对比 41
2.4.1 性能对比 41
2.4.2 代码复杂度 42
2.4.3 功能对比 42
2.4.4 数据库中断 43
2.5 本章小结 46
第3章 初识HikariCP 47
3.1 Hikari背景、特色及前景 47
3.2 SpringBoot数据库连接池加载顺序剖析 51
3.3 SpringBoot整合HikariCP实战 53
3.3.1 Spring Initializr 53
3.3.2 添加HikariCP依赖 55
3.3.3 JdbcTemplate 56
3.3.4 Database Initialization 57
3.3.5 启动运行 59
3.4 本章小结 60
第二篇 基础篇
第4章 HikariCP参数配置 64
4.1 校时 64
4.2 HikariCP配置手册 68
4.2.1 必需配置 69
4.2.2 非必需配置 72
4.3 HikariCP连接池配置多大合适 78
4.4 Fixed Pool Design思想 81
4.5 MySQL高性能配置 82
4.6 Hibernate配置 83
4.7 JNDI配置 85
4.8 本章小结 86
第5章 HikariCP与JDBC 87
5.1 HikariCP JDBC Logging 87
5.2 JDBC 90
5.2.1 JDBC定义 91
5.2.2 JDBC实战案例 93
5.2.3 JDBC剖析 95
5.2.4 PreparedStatement和Statement 100
5.3 JDBC与SPI 101
5.3.1 SPI简介 101
5.3.2 SPI实战案例 102
5.3.3 JDBC的SPI机制 104
5.3.4 SPI高级实战:基于Dubbo的分布式日志链路TraceID追踪 106
5.4 拓展:线程池技术 109
5.4.1 MySQL线程池简介 110
5.4.2 MySQL线程池技术内幕 111
5.4.3 MySQL线程池实战 114
5.5 本章小结 117
第三篇 原理篇
第6章 HikariCP性能揭秘 120
6.1 华山论剑 120
6.2 第三方测评 124
6.2.1 环境配置 125
6.2.2 获取关闭连接性能测试 125
6.2.3 查询一条语句性能测试 127
6.2.4 psCache性能对比 128
6.2.5 测试结论 129
6.3 HikariCP为什么这么快 129
6.3.1 精简字节码 130
6.3.2 FastList 132
6.3.3 ConcurrentBag 134
6.4 本章小结 147
第7章 HikariCP连接原理 148
7.1 获取连接 148
7.2 归还连接 155
7.3 关闭连接 158
7.4 生成连接 163
7.5 扩展阅读:DCL为什么要加volatile 166
7.6 扩展阅读:Log4j2为何性能优秀 169
7.7 本章小结 173
第8章 HikariCP参数源码解析 174
8.1 SpringBoot 2.x HikariCP参数加载原理 174
8.2 allowPoolSuspension 181
8.3 validationTimeout 187
8.4 leakDetectionThreshold 189
8.5 本章小结 202
第9章 HikariCP动态代理与字节码技术 203
9.1 HikariCP字节码工程 203
9.1.1 HikariCP的字节码技术 204
9.1.2 代理技术原理 209
9.1.3 HikariCP JIT方法内联优化 213
9.2 JMH基准测试 216
9.2.1 JMH常用注解 216
9.2.2 JMH实战案例Orika 219
9.3 本章小结 223
第四篇 实战篇
第10章 HikariCP监控实战 226
10.1 监控体系层次 226
10.2 为什么需要数据库连接池监控 228
10.3 HikariCP监控指标 231
10.3.1 hikaricp_pending_threads 233
10.3.2 hikaricp_connection_acquired_nanos 234
10.3.3 hikaricp_idle_connections 235
10.3.4 hikaricp_active_connections 235
10.3.5 hikaricp_connection_usage_millis 235
10.3.6 hikaricp_connection_timeout_total 235
10.3.7 hikaricp_connection_creation_millis 236
10.4 HikariCP监控指标实战 236
10.4.1 连接风暴 236
10.4.2 慢SQL 237
10.4.3 监控指标与参数配置 237
10.5 SpringBoot 2.0暴露HikariCP Metrics 238
10.6 SpringBoot 2.0监控HikariCP JMX 241
10.7 微服务架构下的监控平台选型 246
10.8 本章小结 250
第11章 从HikariCP Metrics谈微服务监控架构实战 252
11.1 HikariCP Metrics 253
11.2 Micrometer 258
11.3 SpringBoot 2.x自定义埋点实战 260
11.3.1 引入依赖 260
11.3.2 配置application.properties 261
11.3.3 注册Metrics 261
11.3.4 支付接口埋点统计总次数 262
11.3.5 查看指标数据 262
11.4 SpringBoot 2.x集成Micrometer源码解析 266
11.5 SpringBoot 1.5.x自定义埋点实战 269
11.5.1 引入Micrometer依赖 269
11.5.2 创建Bean并注册Metrics指标
前言
第一篇 准备篇
第1章 阿里中间件实战,第一个案例 2
1.1 物联网MQTT单机压测130万参数调优 2
1.2 阿里中间件TCP四次挥手性能调优实战 4
1.2.1 亿级消息网关Rowan架构 4
1.2.2 人脸识别服务:异曲同工的架构 6
1.2.3 “双十一大促”全链路压测发现TCP问题 9
1.2.4 Linux内核网络参数调优 11
1.2.5 Linux TCP参数调优 12
1.2.6 一行代码大幅提升QPS 13
1.3 技术驱动业务,结果为导向 16
1.4 本章小结 17
第2章 数据库连接池江湖 19
2.1 为什么使用数据库连接池 19
2.2 数据库连接池原理 22
2.3 数据库连接池百晓生《兵器谱》 23
2.3.1 c3p0 24
2.3.2 Proxool 29
2.3.3 XAPool 30
2.3.4 DBCP 32
2.3.5 Tomcat JDBC Pool 34
2.3.6 BoneCP 36
2.3.7 Druid 38
2.4 主流数据库连接池对比 41
2.4.1 性能对比 41
2.4.2 代码复杂度 42
2.4.3 功能对比 42
2.4.4 数据库中断 43
2.5 本章小结 46
第3章 初识HikariCP 47
3.1 Hikari背景、特色及前景 47
3.2 SpringBoot数据库连接池加载顺序剖析 51
3.3 SpringBoot整合HikariCP实战 53
3.3.1 Spring Initializr 53
3.3.2 添加HikariCP依赖 55
3.3.3 JdbcTemplate 56
3.3.4 Database Initialization 57
3.3.5 启动运行 59
3.4 本章小结 60
第二篇 基础篇
第4章 HikariCP参数配置 64
4.1 校时 64
4.2 HikariCP配置手册 68
4.2.1 必需配置 69
4.2.2 非必需配置 72
4.3 HikariCP连接池配置多大合适 78
4.4 Fixed Pool Design思想 81
4.5 MySQL高性能配置 82
4.6 Hibernate配置 83
4.7 JNDI配置 85
4.8 本章小结 86
第5章 HikariCP与JDBC 87
5.1 HikariCP JDBC Logging 87
5.2 JDBC 90
5.2.1 JDBC定义 91
5.2.2 JDBC实战案例 93
5.2.3 JDBC剖析 95
5.2.4 PreparedStatement和Statement 100
5.3 JDBC与SPI 101
5.3.1 SPI简介 101
5.3.2 SPI实战案例 102
5.3.3 JDBC的SPI机制 104
5.3.4 SPI高级实战:基于Dubbo的分布式日志链路TraceID追踪 106
5.4 拓展:线程池技术 109
5.4.1 MySQL线程池简介 110
5.4.2 MySQL线程池技术内幕 111
5.4.3 MySQL线程池实战 114
5.5 本章小结 117
第三篇 原理篇
第6章 HikariCP性能揭秘 120
6.1 华山论剑 120
6.2 第三方测评 124
6.2.1 环境配置 125
6.2.2 获取关闭连接性能测试 125
6.2.3 查询一条语句性能测试 127
6.2.4 psCache性能对比 128
6.2.5 测试结论 129
6.3 HikariCP为什么这么快 129
6.3.1 精简字节码 130
6.3.2 FastList 132
6.3.3 ConcurrentBag 134
6.4 本章小结 147
第7章 HikariCP连接原理 148
7.1 获取连接 148
7.2 归还连接 155
7.3 关闭连接 158
7.4 生成连接 163
7.5 扩展阅读:DCL为什么要加volatile 166
7.6 扩展阅读:Log4j2为何性能优秀 169
7.7 本章小结 173
第8章 HikariCP参数源码解析 174
8.1 SpringBoot 2.x HikariCP参数加载原理 174
8.2 allowPoolSuspension 181
8.3 validationTimeout 187
8.4 leakDetectionThreshold 189
8.5 本章小结 202
第9章 HikariCP动态代理与字节码技术 203
9.1 HikariCP字节码工程 203
9.1.1 HikariCP的字节码技术 204
9.1.2 代理技术原理 209
9.1.3 HikariCP JIT方法内联优化 213
9.2 JMH基准测试 216
9.2.1 JMH常用注解 216
9.2.2 JMH实战案例Orika 219
9.3 本章小结 223
第四篇 实战篇
第10章 HikariCP监控实战 226
10.1 监控体系层次 226
10.2 为什么需要数据库连接池监控 228
10.3 HikariCP监控指标 231
10.3.1 hikaricp_pending_threads 233
10.3.2 hikaricp_connection_acquired_nanos 234
10.3.3 hikaricp_idle_connections 235
10.3.4 hikaricp_active_connections 235
10.3.5 hikaricp_connection_usage_millis 235
10.3.6 hikaricp_connection_timeout_total 235
10.3.7 hikaricp_connection_creation_millis 236
10.4 HikariCP监控指标实战 236
10.4.1 连接风暴 236
10.4.2 慢SQL 237
10.4.3 监控指标与参数配置 237
10.5 SpringBoot 2.0暴露HikariCP Metrics 238
10.6 SpringBoot 2.0监控HikariCP JMX 241
10.7 微服务架构下的监控平台选型 246
10.8 本章小结 250
第11章 从HikariCP Metrics谈微服务监控架构实战 252
11.1 HikariCP Metrics 253
11.2 Micrometer 258
11.3 SpringBoot 2.x自定义埋点实战 260
11.3.1 引入依赖 260
11.3.2 配置application.properties 261
11.3.3 注册Metrics 261
11.3.4 支付接口埋点统计总次数 262
11.3.5 查看指标数据 262
11.4 SpringBoot 2.x集成Micrometer源码解析 266
11.5 SpringBoot 1.5.x自定义埋点实战 269
11.5.1 引入Micrometer依赖 269
11.5.2 创建Bean并注册Metrics指标
前 言
为什么要写这本书
2017年我开始从事数据库连接池中间件的研发和架构工作,并在公司内部写了一系列数据库连接池HikariCP源码解析和实战的文章。在老板张聪的建议下,我申请了微信公众号并坚持分享技术,公众号的初心是:“写的内容要有人阅读,这样才会引发互动交流;有朋友就不会觉得孤独,而且互相探讨也有助于自身提高”。
我从事的底层数据库中间件采用了HikariCP这款数据库连接池,这让我和HikariCP结下了不解之缘。非常幸运的是,在长达近一年的时间里,每天都有大量的业务开发人员向我咨询数据库连接池的问题,最多的时候可以达到十多位同学排队咨询,使我颇有老中医开堂坐诊的感觉。我是一个细心的人,大家的疑问和最后的解决方式都会一一记录下来,我也会协助网友以及其他公司的技术人员分析定位数据库连接池问题,帮助他们的项目顺利上线我也同样感到喜悦,这段经历是我技术之路上宝贵的财富。
我毕业于哈工大,哈工大的校训是“规格严格,功夫到家”,母校影响着我的做事风格,我是一个追求极致的人。但每当我协助业务开发人员排查问题时,却常常发现糟糕的事情。比如很多业务项目里充斥着HikariCP、Druid、BoneCP、c3p0、Tomcat JDBC等多种数据库连接池依赖项,而开发人员却并不知道自己究竟使用的是哪款数据库连接池,而将依赖做到精简是中间件岗位最基本的素养。美国童子军有一条 “让营地比你来时更干净”的军规,这也是《Clean Code》这本经典书强烈建议的。比如,我发现很多业务开发同学咨询的问题如果总结下来是可以分门别类的,但是部分人解决了问题却不会分享、传播、传承,进而造成其他人接二连三地因为类似的问题再度陷入费时费力的排查之中;再比如,很多技术人员在学习使用数据库连接池之后想对更深入的技术进行探索,然而市面上却没有系统、深入地介绍数据库连接池的书,导致他们不得不投入到其他项目中从而没有实现深入了解数据库连接池的梦。因此,我决定撰写一本相关的图书。这是一本介绍数据库连接池的书,由于这本书中更多凝结的是我多年的实践经验、我对于社区数据库连接池上千条问题讨论的研读等,所以这本书称为“HikariCP数据库连接池实战”。
Hikari在日语中的意思是光,代表了极致。极致无处不在,极致可以小到一次代码提交,也可以大到整个研发流程;极致可以小到一行JDK底层代码,也可以大到整个电商系统架构;极致可以运用在技术选型,也可以运用在团队管理。极致也是分场景的,有些是大规模高并发的要求,有些原则上不到一定的数量级不能用。极致的追求,不仅需要对基础技术原理有足够深入的了解,还需要配套的中间件支持,相关的业务协助改造。极致之路,没有银弹,不要想一招毙命,一口吃成个胖子,而是要审时度势,根据当前的现状来裁定。在和HikariCP打交道的期间,我发现这是数据库连接池界一款以追求极致为初心的艺术作品。不论是从相关文献资料、问题讨论、源码更新,还是从HikariCP多年来不辞辛劳一步一个脚印的社区贡献,我都能深深感受到HikariCP在极致之路上一次又一次地超越自我,以追求卓越的状态面对未来的技术发展方向。
光不但是极致,更是希望。这些年,尤其是写这本书的期间,我承受了不少的委屈,也遭遇了很多的坎坷,经历了生离,也经历了死别。然而我坚持将自己的梦实现,希望能活成一束光,能够温暖别人,也能够照亮别人,这才是真正的正能量。《HikariCP数据库连接池实战》,是我的孩子,也是我梦想的实现,但我希望它不再是属于我一个人的梦,更希望能够将HikariCP的光亮照进每一名读者心中。
最后送大家一段话:在一无所有时,也请坚持做一名追光者,愿大家都能找到自己内心深处的光,接近并成为它,去发光发亮,成为别人眼中的和照亮别人的光,用更亮的光芒照亮世界的每一个角落。你就是太阳,蒸发了彷徨,有你的地方就是天堂。
读者对象
本书适合所有Java程序员阅读,尤其适合以下读者:
Java初中级开发者。
系统架构师。
中间件开发者。
Java多线程、并发开发者。
使用HikariCP参与工作流程的公司与集体。
开设Java相关课程的大专院校师生。
其他对数据库连接池技术感兴趣的人员。
本书特色
在本书写作的过程中,我尽量避免让这本书成为“代码书”或者“概念书”,用自己的实战经验和大量文献涉猎将本书凝结为一本高内涵、高价值的实战书籍。这本书准确地说写了两年的时间,第一年我在数据库连接池方面进行实践并形成零散的文字记录,第二年较为体系化地将各种经验、总结、记录梳理成册。本书的目录结构也经过了好几个版本的迭代修改,旨在让读者用最短的时间循序渐进地学完相关知识点。本书的篇幅也做过很多的压缩、删减,目的是聚焦核心内容,像“瑞士军刀”一样短小锋利,可以帮助读者快速学习并解决问题。
本书以阿里大型消息中间件的无池化TCP调优开篇,这也是我在阿里晋升答辩的内容之一,在扩展性能调优知识的同时顺带引出Java平台下性能调优的利器——数据库连接池。这样的开篇可以让读者真真切切感受到数据库连接池出现的必要性。接着,从数据库连接池出现的背景、原因入手,循序渐进地为大家盘点了主流
2017年我开始从事数据库连接池中间件的研发和架构工作,并在公司内部写了一系列数据库连接池HikariCP源码解析和实战的文章。在老板张聪的建议下,我申请了微信公众号并坚持分享技术,公众号的初心是:“写的内容要有人阅读,这样才会引发互动交流;有朋友就不会觉得孤独,而且互相探讨也有助于自身提高”。
我从事的底层数据库中间件采用了HikariCP这款数据库连接池,这让我和HikariCP结下了不解之缘。非常幸运的是,在长达近一年的时间里,每天都有大量的业务开发人员向我咨询数据库连接池的问题,最多的时候可以达到十多位同学排队咨询,使我颇有老中医开堂坐诊的感觉。我是一个细心的人,大家的疑问和最后的解决方式都会一一记录下来,我也会协助网友以及其他公司的技术人员分析定位数据库连接池问题,帮助他们的项目顺利上线我也同样感到喜悦,这段经历是我技术之路上宝贵的财富。
我毕业于哈工大,哈工大的校训是“规格严格,功夫到家”,母校影响着我的做事风格,我是一个追求极致的人。但每当我协助业务开发人员排查问题时,却常常发现糟糕的事情。比如很多业务项目里充斥着HikariCP、Druid、BoneCP、c3p0、Tomcat JDBC等多种数据库连接池依赖项,而开发人员却并不知道自己究竟使用的是哪款数据库连接池,而将依赖做到精简是中间件岗位最基本的素养。美国童子军有一条 “让营地比你来时更干净”的军规,这也是《Clean Code》这本经典书强烈建议的。比如,我发现很多业务开发同学咨询的问题如果总结下来是可以分门别类的,但是部分人解决了问题却不会分享、传播、传承,进而造成其他人接二连三地因为类似的问题再度陷入费时费力的排查之中;再比如,很多技术人员在学习使用数据库连接池之后想对更深入的技术进行探索,然而市面上却没有系统、深入地介绍数据库连接池的书,导致他们不得不投入到其他项目中从而没有实现深入了解数据库连接池的梦。因此,我决定撰写一本相关的图书。这是一本介绍数据库连接池的书,由于这本书中更多凝结的是我多年的实践经验、我对于社区数据库连接池上千条问题讨论的研读等,所以这本书称为“HikariCP数据库连接池实战”。
Hikari在日语中的意思是光,代表了极致。极致无处不在,极致可以小到一次代码提交,也可以大到整个研发流程;极致可以小到一行JDK底层代码,也可以大到整个电商系统架构;极致可以运用在技术选型,也可以运用在团队管理。极致也是分场景的,有些是大规模高并发的要求,有些原则上不到一定的数量级不能用。极致的追求,不仅需要对基础技术原理有足够深入的了解,还需要配套的中间件支持,相关的业务协助改造。极致之路,没有银弹,不要想一招毙命,一口吃成个胖子,而是要审时度势,根据当前的现状来裁定。在和HikariCP打交道的期间,我发现这是数据库连接池界一款以追求极致为初心的艺术作品。不论是从相关文献资料、问题讨论、源码更新,还是从HikariCP多年来不辞辛劳一步一个脚印的社区贡献,我都能深深感受到HikariCP在极致之路上一次又一次地超越自我,以追求卓越的状态面对未来的技术发展方向。
光不但是极致,更是希望。这些年,尤其是写这本书的期间,我承受了不少的委屈,也遭遇了很多的坎坷,经历了生离,也经历了死别。然而我坚持将自己的梦实现,希望能活成一束光,能够温暖别人,也能够照亮别人,这才是真正的正能量。《HikariCP数据库连接池实战》,是我的孩子,也是我梦想的实现,但我希望它不再是属于我一个人的梦,更希望能够将HikariCP的光亮照进每一名读者心中。
最后送大家一段话:在一无所有时,也请坚持做一名追光者,愿大家都能找到自己内心深处的光,接近并成为它,去发光发亮,成为别人眼中的和照亮别人的光,用更亮的光芒照亮世界的每一个角落。你就是太阳,蒸发了彷徨,有你的地方就是天堂。
读者对象
本书适合所有Java程序员阅读,尤其适合以下读者:
Java初中级开发者。
系统架构师。
中间件开发者。
Java多线程、并发开发者。
使用HikariCP参与工作流程的公司与集体。
开设Java相关课程的大专院校师生。
其他对数据库连接池技术感兴趣的人员。
本书特色
在本书写作的过程中,我尽量避免让这本书成为“代码书”或者“概念书”,用自己的实战经验和大量文献涉猎将本书凝结为一本高内涵、高价值的实战书籍。这本书准确地说写了两年的时间,第一年我在数据库连接池方面进行实践并形成零散的文字记录,第二年较为体系化地将各种经验、总结、记录梳理成册。本书的目录结构也经过了好几个版本的迭代修改,旨在让读者用最短的时间循序渐进地学完相关知识点。本书的篇幅也做过很多的压缩、删减,目的是聚焦核心内容,像“瑞士军刀”一样短小锋利,可以帮助读者快速学习并解决问题。
本书以阿里大型消息中间件的无池化TCP调优开篇,这也是我在阿里晋升答辩的内容之一,在扩展性能调优知识的同时顺带引出Java平台下性能调优的利器——数据库连接池。这样的开篇可以让读者真真切切感受到数据库连接池出现的必要性。接着,从数据库连接池出现的背景、原因入手,循序渐进地为大家盘点了主流
评论
还没有评论。