开场
本书是按照程序设计与架构的顺序编写的,共13章。
第1章介绍学习高性能Java应了解的核心知识,为前置内容。
第2章和第3章讲解在编写代码之前,如何高效地为My SQL填充亿级数据,并对My SQL进行基准测试,以便在之后编程时有所比较。
第4章讲解在编写代码的过程中如何优化代码,使代码更高效。
第5章和第6章讲解在写好代码之后如何测试并优化场景响应速度。
第7章和第8章讲解在程序上线执行一段时间之后如何对MySQL进行主从复制、分库分表。
第9章讲解如何通过Promet heus和Grafana监控MySQL节点。
第10章和第11章讲解如何通过堆内缓存、堆外缓存(MapDB)和磁盘缓存解决MySQL数据库性能不佳的问题。
第12章讲解如何使用分布式锁Redisson解决实际应用中常见的数据一致性问题。
第13章简要介绍Java中的常见架构与工具。
前言
市面上讲Java框架的书很多,包括Sping Boot、Spring Cloud、Kafka等,但这些书通常只会让你技术的“量”增长,而“质”仍处于SSM的阶段。而且互联网上并没有体系化、结构化的提升技术的“质”的教材,于是我行动了起来,将我所学的架构思想与实现方式都放入本书中,将提升技术的“质”的方式分享给大家。
适合阅读对象
本书不仅适合Java初学者、刚入行的编程人员,也适合对高性能、高并发感兴趣的程序员。
目录总览
下面开始内容展示环节:
第一章(高性能Java核心知识概述)
内容概览:
1.1 高性能
高性能(High Performance)指程序处理速度快,所占内存少,CPU占用率低。高性能的指标和高并发的指标紧密相关,想要提高性能,就要提高系统发并发能力,两者是相互捆绑在一起的。在做性能优化时,计算密集型和I/O密集型是有很大差别的,需要分开考虑。除此之外,还可以通过增加服务器的数量、内存等提升系统的并发能力,但不要浪费资源。
1.2 高并发
一台服务器放在桌面上,它的CPU和内存的生产厂家及型号是确定的。但是代码(应用程序)放置在这台服务器中,其性能再优化也不可能超过服务器自身的承载能力。程序员可以靠各种设计手段和实现方式让这台服务器速度更快一些。例如,应用程序的开发自然是进程内的快于进程外的,进程外的快于服务器外的(服务器交互),多节点的集群承载力和可用性高于单节点的,异步多线程的设计优于同步的设计等。
第二章(为MySQL填充亿级数据)
内容概览:
2.1 问题描述
在编写代码之前,应先针对业务设计的数据格式创建表结构,然后填充亿级数据,此阶段出现的典型问题如下:
(1)对于新上线的项目,我们希望能测试出它的最高承载用户量,在数据库为空的情况下,应如何增加亿级数据?
(2)在学习和工作工程中,经常需要使用数据量庞大的表来模拟系统在真实环境中的响应情况。如果只写一段代码,之后循环使用INSERT语句插入数据则实在是太慢了,是否有更快速的方法?
第三章(MySQL基准测试:sysbench与mysqlslap)
3.1 问题描述
在编写代码之前,填充亿级数据之后,应对数据库做基准测试,即在还没有编写代码的时候了解当前设计的数据格式和表结构的性能基准是怎样的,以便在之后编程时有所比较,此阶段出现的典型问题如下:
(1)如何为刚搭建的MySQL数据库配置相关参数,例如8CPU、16MEM的服务器,应配置何种参数使该服务器最优?
(2)当前设计的数据结构与表结构在没有其他因素影响性能时,基准响应情况如何?
(3)当前负载均衡架构体系是否过多地影响了单台MySQL数据库的性能,例如,主从复制在当前架构中应当选择何种策略才不会过度损耗单台My SQL数据库的性能?
(4)当前单台MySQL数据库的最大承载访问量是多少?
(5)当MySQL数据库单表数据量过亿时,返回数据的速度极慢是正确的吗?
第四章(代码单元的性能测试与优化)
4.1 问题描述
第五章(Web性能测试解决方案:JMeter)
5.1 问题描述
第六章(SQL优化与索引优化)
6.1 问题描述
第七章(MySQL主从复制)
7.1 问题描述
第八章(MySQL分库分表:MyCAT)
8.1 问题描述
第九章(MySQL性能监控解决方案:Prometheus+Grafana)
9.1 问题描述
第十章(堆内缓存解决方案:Java堆内缓存与Guava Cache)
10.1 问题描述
第十一章(堆外缓存与磁盘缓存解决方案:MapDB)
11.1 问题描述
第十二章(基于Redis的分布式锁解决方案:Redisson)
12.1 问题描述
第十三章(Java中的常见架构与工具)
13.1 问题描述
内容实在是太多了,也因为字数限制,就不一 一展示出来了。
文中资料已整理打包存放网盘,有需要的朋友可以点击下方的名片自取!