写了本书,准备连载

科技   2024-11-20 08:08   河北  

2024 年是一个不太友好的年份。

年初跟一家出版社的编辑沟通,确定了一个选题,然后我就开始了写这本书。后来一波三折,最终折戟。

但是书已经写了,而且投入了不少精力,不能就此埋没了。所以打算在公众号上进行连载,总计 11 章 13 万字,估计连载完够一阵子了。

对了,书的名字:从 Java 开始做性能测试

如果本书内容对你有所帮助,希望各位多多赞赏,让我可以贴补家用。赞赏两位数可以提前阅读未公开章节。我也会尝试制作本书的视频教程,包括必要的答疑。

书的内容

本书总计包含11章,分为3大部分,第一部分(1-3章)侧重于Java并发编程技术学习以及开发简单性能测试框架;第二部分(4-9章)会针对常见的测试对象、通信协议进行逐个讲解,并在预设的测试场景中使用性能测试框架进行实战;第三部分(10-11章)则是性能测试技术拓展,讲解高性能池化框架和Java微基准测试框架实战。详细章节内容如下:

  • 第1章:讲解Java多线程编程基础。Java并发是性能测试底座,通过学习Java并发常用的实现方式,不同线程池的选择和适用场景,特别是对线程池创建参数进行详细的讲解和拓展,让读者了解掌握并发编程基础能力。
  • 第2章:在掌握并发编程基础后,本章讲解在性能测试中,Java多线程编程常用的功能类、API,并在实际场景中演示常其使用方式,在性能测试中的最佳实践,并针对使用场景,讲解讲解不同并发安全实现类的优缺点。
  • 第3章:有了前两章铺垫,本章演示通过Java多线程编程技术开发一个简单的性能测试框架。从选择自定义线程池和并发模型选择开始,一点点完成预设功能,最后性能测试场景中探寻拓展需求并且开发实现,给测试框架增砖添瓦。
  • 第4章:本章讲解如何测试HTTP协议接口。首先简单介绍HTTP协议基础知识,然后重点讲解Java Client的API,进行实际HTTP接口的请求,使用第4章写好的性能测试框架进行HTTP接口的模拟性能测试。最后介绍了HTTP接口性能测试流量回放框架应用场景,同时利用学过的并发知识,开发了自定义流量回放引擎。
  • 第5章:本章以WebSocket协议为例,讲解如何测试长连接协议接口。首先介绍WebSocket协议基础知识,然后进行2种WebSocket Client实现,再进行WebSocket 发起请求,最终使用写好的性能测试框架进行WebSocket接口的模拟性能测试,以及WebSocket连接数性能测试。
  • 第6章:接下来进入数据库领域。MySQL当仁不让是关系型数据库的代表。本章讲解MySQL协议接口。首先介绍MySQL协议的基础知识,通过JDBC演示MySQL API的使用,最后进行常见使用场景的性能测试实现。通过MySQL数据库批量插入锻炼了JDBC在并发编程实践中,讲解了如何提升写入TPS的3种方式。
  • 第7章:对于非关系型数据库,Redis也是明星选手。本章讲解如何对Redis接口。首先介绍Redis协议的基本知识,使用Redis Client实现库jedis进行Redis API的讲解和使用演示,最后进行常见场景的性能测试。
  • 第8章:本章讲解RPC协议测试方法,以gRPC协议为例,讲解如何测试RPC协议接口。首先介绍gRPC接口基本概念和知识,通过3种gRPC Client讲解与代码实现,完成gRPC API的请求调用,最终使用性能测试框架进行性能测试。
  • 第9章:本章进入消息中间件领域,讲解Kafka协议接口测试。首先讲解Kafka协议的基础知识,演示Kafka Client的API,对工作中常用的常用的Kafka测试场景进行实现。
  • 第10章:作为补充,本章学习绝大多数高性能设计都会涉及的池化技术。本章讲解Java高性能池化框架:Apache-pool2。这样当我们需要自己编写高性能对象池时,就可以立足于此,大展拳脚。实践环节中,我们首先对MySQL进行了对象池改造,然后针对轻量级应用场景,我们利用池化技术完成了自定义对象池功能开发实践。
  • 第11章:本章内容围绕微基准测试、Java微基准测试工具JMH。讲解和演示基础功能,之后再对常见集合类的遍历、添加删除进行微基准测试,一方面锻炼了对JMH工具的实战能力,一方面也对这些集合类的性能有所了解。最后以性能测试中生成唯一标识符为专题,不仅从实现方式进行讲解,而且通过JMH微基准测试验证其方案的性能。

书的目录

第1章 Java多线程编程 1

  • 1.1 并发与并行 1
  • 1.2 Java多线程实现 2
  • 1.3 Java线程池 6
  • 1.4 自定义线程池 20
  • 1.5 总结 36

第2章 多线程编程常用功能类 38

  • 2.1 线程安全 38
  • 2.2 synchronized关键字 39
  • 2.3 lock锁 47
  • 2.4 atomic包原子类 53
  • 2.5 CountDownLatch 55
  • 2.6 Phaser 59
  • 2.7 线程安全的集合类 67
  • 2.8 ThreadLocal 74
  • 2.9 总结 90

第3章 开发性能测试引擎 78

  • 3.1 性能测试模型 78
  • 3.2 线程池选择 81
  • 3.3 多线程任务类 85
  • 3.4 多线程执行类 90
  • 3.5 Rump-Up功能 103
  • 3.6 测试中信息实时展示 107
  • 3.7 性能测试实战 112
  • 3.8 锦囊妙计 121
  • 3.9 总结 132

第4章 HTTP协议性能测试 133

  • 4.1 HTTP基础 133
  • 4.2 HttpClient详解 137
  • 4.3 HTTP协议接口测试实战 157
  • 4.4 流量回放 175
  • 4.5 总结 186

第5章WebSocket协议性能测试 187

  • 5.1 WebSocket基础 187
  • 5.2 Java-WebSocket详解 188
  • 5.3 Netty-WebSocket详解 196
  • 5.4WebSocket接口测试实战 205
  • 5.5总结 215

第6章 MySQL协议性能测试 216

  • 6.1 MySQL协议基础 216
  • 6.2 JDBC详解 217
  • 6.3 MySQL性能测试实战 224
  • 6.4 总结 237

第7章Redis协议性能测试 238

  • 7.1 Redis基础 238
  • 7.2 Jedis详解 239
  • 7.3 Redis性能测试实战 248
  • 7.4 总结 257

第8章 gRPC协议性能测试 258

  • 8.1 gRPC协议基础 258
  • 8.2 常用3种gRPC客户端 259
  • 8.3 gRPC协议接口性能测试实战 263
  • 8.4 总结 267

第9章Kafka协议性能测试 268

  • 9.1 Kafka协议基础 268
  • 9.2 生产者和消费者 269
  • 9.3 Kafka性能测试实战 272
  • 9.4 总结 278

第10章 通用池化框架 280

  • 10.1 Apache Commons Pool基础 280
  • 10.2  Apache Commons Pool详解 281
  • 10.3 池化框架实战 283
  • 10.4 总结 295

第11章 微基准测试与实战 296

  • 11.1 Java微基准测试工具JMH 296
  • 11.2 JMH实战——集合遍历 303
  • 11.3 JMH实战——集合添加和删除 307
  • 11.4 JMH实战——唯一标识 311
  • 11.5 总结 323
FunTester
FunTester 原创精华


FunTester
万粉千文|百无一用
 最新文章