3.8 用户推荐指数
计算机
类型
可以朗读
语音朗读
173千字
字数
2021-09-01
发行日期
展开全部
主编推荐语
本书不仅适合Java初学者、刚入行的编程人员,也适合对高性能、高并发感兴趣的程序员。
内容简介
本书是按照程序设计与架构的顺序编写的,共13章。
第1章介绍学习高性能Java应了解的核心知识,为前置内容。
第2章和第3章讲解在编写代码之前,如何高效地为MySQL填充亿级数据,并对MySQL进行基准测试,以便在之后编程时有所比较。
第4章讲解在编写代码的过程中如何优化代码,使代码更高效。
第5章和第6章讲解在写好代码之后如何测试并优化场景响应速度。
第7章和第8章讲解在程序上线执行一段时间之后如何对MySQL进行主从复制、分库分表。
第9章讲解如何通过Prometheus和Grafana监控MySQL节点。
第10章和第11章讲解如何通过堆内缓存、堆外缓存(MapDB)和磁盘缓存解决MySQL数据库性能不佳的问题。
第12章讲解如何使用分布式锁Redisson解决实际应用中常见的数据一致性问题。
第13章简要介绍Java中的常见架构与工具。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 高性能Java核心知识概述
- 1.1 高性能
- 1.2 高并发
- 1.3 高可用
- 1.4 算法、GC与诊断工具
- 1.4.1 算法
- 1.4.2 GC
- 1.4.3 jvmtop
- 1.4.4 jstat
- 1.4.5 Arthas
- 1.5 分离术
- 1.6 基准测试
- 1.6.1 基准测试的概念
- 1.6.2 基准测试的实际用途
- 1.6.3 基准测试与一般性能测试的区别
- 1.7 性能测试
- 1.7.1 性能测试的目的
- 1.7.2 性能测试着重观察的指标
- 1.7.3 性能测试存在的误区
- 1.7.4 性能测试应涵盖的内容
- 1.8 业务测试
- 1.9 单元测试
- 1.9.1 等价类划分
- 1.9.2 边界值分析
- 1.9.3 错误推测法
- 1.10 数据库概述
- 1.10.1 数据库分类
- 1.10.2 数据库测试的具体内容
- 1.11 缓存的核心知识
- 1.11.1 缓存的命中率
- 1.11.2 缓存回收方式
- 1.11.3 缓存回收策略
- 1.11.4 缓存的设计模式
- 1.11.5 缓存测试应涵盖的内容
- 1.11.6 实战:秒杀系统设计方案
- 1.12 总结——业务、性能、编程、架构相辅相成
- 第2章 为MySQL填充亿级数据
- 2.1 问题描述
- 2.2 问题分析与解决方案
- 2.3 为MySQL填充亿级数据实战
- 2.3.1 INSERT INTO SELECT方案
- 2.3.2 存储过程方案
- 2.3.3 Loadfile方案
- 2.3.4 第三方解决方案
- 2.4 最终结果
- 第3章 MySQL基准测试:sysbench与mysqlslap
- 3.1 问题描述
- 3.2 问题分析与解决方案
- 3.2.1 解决方案:sysbench
- 3.2.2 sysbench的命令与参数
- 3.2.3 解决方案:mysqlslap
- 3.2.4 mysqlslap的命令与参数
- 3.3 sysbench实战
- 3.3.1 使用sysbench压测CPU、内存和磁盘I/O
- 3.3.2 初次使用sysbench压测MySQL
- 3.3.3 深度使用sysbench压测MySQL
- 3.4 mysqlslap实战
- 3.5 其他基准压测工具
- 第4章 代码单元的性能测试与优化
- 4.1 问题描述
- 4.2 问题分析与解决方案
- 4.3 JMH实战
- 4.3.1 测试JMH基准性能
- 4.3.2 测试i++基准性能
- 4.3.3 用JMH执行多个函数的结果
- 第5章 Web性能测试解决方案:JMeter
- 5.1 问题描述
- 5.2 问题分析与解决方案
- 5.3 JMeter的特点
- 5.4 深入理解JMeter
- 5.4.1 JMeter中的部分配置元件
- 5.4.2 JMeter参数化的实现方式
- 5.4.3 JMeter函数
- 5.4.4 通过JMeter读取外部文件
- 5.4.5 通过JMeter提取上一个接口返回值
- 5.5 JMeter实战
- 5.5.1 初次使用JMeter测试REST接口
- 5.5.2 录制性能测试脚本
- 第6章 SQL优化与索引优化
- 6.1 问题描述
- 6.2 问题分析与解决方案
- 6.3 SQL执行计划
- 6.4 SQL优化与索引优化实战
- 6.4.1 SQL索引优化
- 6.4.2 分页查询优化
- 6.4.3 慢SQL日志分析工具mysqldumpslow
- 第7章 MySQL主从复制
- 7.1 问题描述
- 7.2 问题分析与解决方案
- 7.3 MySQL主从复制原理
- 7.4 深入理解MySQL中的二进制日志
- 7.4.1 查看MySQL二进制日志状态
- 7.4.2 log_bin和sql_log_bin的区别
- 7.4.3 开启二进制日志
- 7.4.4 查看二进制日志文件的名称、大小和状态
- 7.4.5 删除某个日志之前的所有二进制日志文件
- 7.4.6 删除某个时间点以前的二进制日志文件
- 7.4.7 删除所有的二进制日志文件
- 7.4.8 查看二进制日志文件内容
- 7.4.9 通过二进制日志文件恢复MySQL
- 7.5 MySQL主从复制实战
- 7.5.1 构建MySQL主从复制架构
- 7.5.2 使用Spring Boot整合MySQL主从复制架构
- 第8章 MySQL分库分表:MyCAT
- 8.1 问题描述
- 8.2 问题分析与解决方案
- 8.3 MyCAT实战
- 8.3.1 构建MyCAT一主多从架构
- 8.3.2 构建MyCAT双主多从环境
- 8.3.3 MyCAT分库——垂直拆分
- 8.3.4 MyCAT分表——水平拆分
- 8.3.5 构建HAProxy + MyCAT + MySQL高可用架构
- 第9章 MySQL性能监控解决方案:Prometheus+Grafana
- 9.1 问题描述
- 9.2 问题分析与解决方案
- 9.3 Prometheus概述与适用场景
- 9.4 时序数据库概述与适用场景
- 9.5 Grafana概述与适用场景
- 9.6 构建Prometheus + Grafana监控实战
- 第10章 堆内缓存解决方案:Java堆内缓存与Guava Cache
- 10.1 问题描述
- 10.2 问题分析与解决方案
- 10.3 Java堆内缓存
- 10.3.1 Java堆内缓存原理
- 10.3.2 Java堆内缓存中的常见算法及实战
- 10.4 Guava Cache实战
- 10.4.1 创建Google的容器工厂
- 10.4.2 屏蔽NULL值
- 10.4.3 管理字符串
- 10.4.4 操作Google的Multiset容器
- 10.4.5 操作Google的Multimap容器
- 10.4.6 操作Google的BiMap容器
- 10.4.7 操作Google的Table容器
- 10.4.8 操作Google的classToInstanceMap容器
- 10.4.9 操作Google的RangeSet容器
- 10.4.10 操作Google的RangeMap容器
- 10.4.11 操作Google的Guava Cache
- 第11章 堆外缓存与磁盘缓存解决方案:MapDB
- 11.1 问题描述
- 11.2 问题分析与解决方案
- 11.2.1 堆外缓存
- 11.2.2 MapDB
- 11.2.3 实战:初次使用MapDB
- 11.3 MapDB的构造原理
- 11.4 MapDB的使用方法
- 11.5 MapDB实战
- 11.5.1 MapDB的序列化
- 11.5.2 MapDB的事务
- 11.5.3 MapDB的监听器与多级缓存
- 第12章 基于Redis的分布式锁解决方案:Redisson
- 12.1 分布式锁与Redisson原理
- 12.2 单机版超买或超卖问题描述及解决方案
- 12.3 分布式版超买或超卖问题描述及解决方案
- 12.4 多线程死锁问题描述及解决方案
- 12.5 Redisson实战
- 12.5.1 Redisson的可重入锁
- 12.5.2 Redisson的公平锁
- 12.5.3 Redisson的联锁
- 12.5.4 Redisson的红锁
- 12.5.5 Redisson的读写锁
- 12.5.6 Redisson的信号量
- 12.5.7 Redisson的分布式闭锁
- 第13章 Java中的常见架构与工具
- 13.1 自动化测试架构
- 13.2 自动化持续集成部署架构
- 13.3 高并发架构
- 13.4 响应式编程架构
- 13.5 负载均衡架构
- 13.6 监控工具与监控架构
- 13.7 其他工具与架构
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。