《HikariCP数据库连接池实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(中国)朱政科
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111633211
  • 页数:345 页
图书介绍:这是一本介绍数据库连接池HikariCP的技术指导书,具有系统性、工具性和实战性的! 本书全面介绍了HikariCP连接池技术的基础知识,并配有大小案例几十个,而且包含对疑难问题的解决方案,另外书中还对扩展知识、最佳实践做了前瞻以及深入浅出的实操性介绍。

第一篇 准备篇 2

第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 LinuxTCP参数调优 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 SpringInitializr 53

3.3.2 添加HikariCP依赖 55

3.3.3 JdbcTemplate 56

3.3.4 Database Initialization 57

3.3.5 启动运行 59

3.4 本章小结 60

第二篇 基础篇 64

第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

第三篇 原理篇 120

第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 HikariCPJIT方法内联优化 213

9.2 JMH基准测试 216

9.2.1 JMH常用注解 216

9.2.2 JMH实战案例Orika 219

9.3 本章小结 223

第四篇 实战篇 226

第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暴露HikariCPMetrics 238

10.6 SpringBoot 2.0监控HikariCPJMX 241

10.7 微服务架构下的监控平台选型 246

10.8 本章小结 250

第11章 从HikariCP Metrics谈微服务监控架构实战 252

11.1 HikariCPMetrics 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指标 270

11.5.3 在Controller中进行支付业务埋点 271

11.6 监控架构重点 272

11.6.1 Prometheus 272

11.6.2 Grafana 275

11.7 本章小结 278

第12章 HikariCP扩展技术 280

12.1 Flexy-Pool 280

12.2 Apache ShardingSphere 284

12.3 自研集成HikariCP和Sharding-JDBC数据库中间件 295

12.4 时钟回拨 300

12.5 本章小结 311

第13章 HikariCP常见问题 312

13.1 HikariCP故障分析技巧 312

13.2 leakDetectionThreshold参数解决SparkScala连接池泄露 318

13.3 详解JDBC超时 320

13.4 快速恢复 323

13.5 Oracle Connection Reset问题 327

13.6 HikariCP关闭连接的5种情况 329

13.7 如何获取HikariDataSource的active connection 330

13.8 如何对HikariCP配置文件中的服务器名、用户名、密码加密 330

13.9 HikariCP神奇的配置dataSourceProperties 330

13.10 如何获取HikariCP连接池中的原始连接 332

13.11 HikariCP并不是万能工具 332

13.12 本章小结 333

第14章 HikariCP诡案实录 334

14.1 问题描述 334

14.2 Brett经典回答 336

14.3 另一个类似的案例 337

14.4 分析问题 338

14.5 解决问题 344

14.6 本章小结 344