注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信高性能Java架構(gòu):核心原理與案例實戰(zhàn)

高性能Java架構(gòu):核心原理與案例實戰(zhàn)

高性能Java架構(gòu):核心原理與案例實戰(zhàn)

定 價:¥89.00

作 者: 張方興 著
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787121376221 出版時間: 2021-08-01 包裝: 平裝
開本: 16開 頁數(shù): 256 字?jǐn)?shù):  

內(nèi)容簡介

  本書是按照程序設(shè)計與架構(gòu)的順序編寫的,共13章。第1章介紹學(xué)習(xí)高性能Java應(yīng)了解的核心知識,為前置內(nèi)容。第2章和第3章講解在編寫代碼之前,如何高效地為MySQL填充億級數(shù)據(jù),并對MySQL進(jìn)行基準(zhǔn)測試,以便在之后編程時有所比較。第4章講解在編寫代碼的過程中如何優(yōu)化代碼,使代碼更高效。第5章和第6章講解在寫好代碼之后如何測試并優(yōu)化場景響應(yīng)速度。第7章和第8章講解在程序上線執(zhí)行一段時間之后如何對MySQL進(jìn)行主從復(fù)制、分庫分表。第9章講解如何通過Prometheus和Grafana監(jiān)控MySQL節(jié)點。第10章和第11章講解如何通過堆內(nèi)緩存、堆外緩存(MapDB)和磁盤緩存解決MySQL數(shù)據(jù)庫性能不佳的問題。第12章講解如何使用分布式鎖Redisson解決實際應(yīng)用中常見的數(shù)據(jù)一致性問題。第13章簡要介紹Java中的常見架構(gòu)與工具。本書不僅適合Java初學(xué)者、剛?cè)胄械木幊倘藛T,也適合對高性能、高并發(fā)感興趣的程序員。

作者簡介

  張方興,多年從事Java編程工作,參與多個項目研發(fā),曾編著《微服務(wù)分布式基礎(chǔ)架構(gòu)與實戰(zhàn)――基于Spring Boot+Spring Cloud》一書。

圖書目錄

第1 章 高性能Java 核心知識概述 1
1.1 高性能 1
1.2 高并發(fā) 2
1.3 高可用 2
1.4 算法、GC 與診斷工具 . 3
1.4.1 算法 . 3
1.4.2 GC . 4
1.4.3 jvmtop 4
1.4.4 jstat 5
1.4.5 Arthas 6
1.5 分離術(shù) 8
1.6 基準(zhǔn)測試 . 8
1.6.1 基準(zhǔn)測試的概念 . 8
1.6.2 基準(zhǔn)測試的實際用途 . 9
1.6.3 基準(zhǔn)測試與一般性能測試的區(qū)別 . 9
1.7 性能測試 . 9
1.7.1 性能測試的目的 . 9
1.7.2 性能測試著重觀察的指標(biāo) . 9
1.7.3 性能測試存在的誤區(qū) . 10
1.7.4 性能測試應(yīng)涵蓋的內(nèi)容 . 11
1.8 業(yè)務(wù)測試 . 12
1.9 單元測試 . 12
1.9.1 等價類劃分 . 13
1.9.2 邊界值分析 . 14
1.9.3 錯誤推測法 . 15
1.10 數(shù)據(jù)庫概述 . 15
1.10.1 數(shù)據(jù)庫分類 . 16
1.10.2 數(shù)據(jù)庫測試的具體內(nèi)容 . 21
1.11 緩存的核心知識 . 22
1.11.1 緩存的命中率 . 23
1.11.2 緩存回收方式 . 23
1.11.3 緩存回收策略 . 23
1.11.4 緩存的設(shè)計模式 . 23
1.11.5 緩存測試應(yīng)涵蓋的內(nèi)容 . 24
1.11.6 實戰(zhàn):秒殺系統(tǒng)設(shè)計方案 24
1.12 總結(jié)――業(yè)務(wù)、性能、編程、架構(gòu)相輔相成 25
第2 章 為MySQL 填充億級數(shù)據(jù) 27
2.1 問題描述 . 27
2.2 問題分析與解決方案 . 27
2.3 為MySQL 填充億級數(shù)據(jù)實戰(zhàn) 28
2.3.1 INSERT INTO SELECT 方案 . 28
2.3.2 存儲過程方案 . 32
2.3.3 Loadfile 方案 . 33
2.3.4 第三方解決方案 . 34
2.4 最終結(jié)果 . 35
第3 章 MySQL 基準(zhǔn)測試:sysbench 與mysqlslap 36
3.1 問題描述 . 36
3.2 問題分析與解決方案 . 36
3.2.1 解決方案:sysbench . 37
3.2.2 sysbench 的命令與參數(shù) 38
3.2.3 解決方案:mysqlslap . 40
3.2.4 mysqlslap 的命令與參數(shù) 41
3.3 sysbench 實戰(zhàn) 42
3.3.1 使用sysbench 壓測CPU、內(nèi)存和磁盤I/O 42
3.3.2 初次使用sysbench 壓測MySQL . 46
3.3.3 深度使用sysbench 壓測MySQL . 49
3.4 mysqlslap 實戰(zhàn) 51
3.5 其他基準(zhǔn)壓測工具 . 56
第4 章 代碼單元的性能測試與優(yōu)化 57
4.1 問題描述 . 57
4.2 問題分析與解決方案 . 57
4.3 JMH 實戰(zhàn) 58
4.3.1 測試JMH 基準(zhǔn)性能 . 58
4.3.2 測試i++基準(zhǔn)性能 . 60
4.3.3 用JMH 執(zhí)行多個函數(shù)的結(jié)果 62
第5 章 Web 性能測試解決方案:JMeter 67
5.1 問題描述 . 67
5.2 問題分析與解決方案 . 67
5.3 JMeter 的特點 . 68
5.4 深入理解JMeter . 68
5.4.1 JMeter 中的部分配置元件 . 68
5.4.2 JMeter 參數(shù)化的實現(xiàn)方式 . 69
5.4.3 JMeter 函數(shù) . 70
5.4.4 通過JMeter 讀取外部文件 72
5.4.5 通過JMeter 提取上一個接口返回值 . 73
5.5 JMeter 實戰(zhàn) . 74
5.5.1 初次使用JMeter 測試REST 接口 . 74
5.5.2 錄制性能測試腳本 . 80
第6 章 SQL 優(yōu)化與索引優(yōu)化 83
6.1 問題描述 . 83
6.2 問題分析與解決方案 . 83
6.3 SQL 執(zhí)行計劃 . 84
6.4 SQL 優(yōu)化與索引優(yōu)化實戰(zhàn) . 91
6.4.1 SQL 索引優(yōu)化 . 91
6.4.2 分頁查詢優(yōu)化 . 95
6.4.3 慢SQL 日志分析工具mysqldumpslow . 96
第7 章 MySQL 主從復(fù)制 101
7.1 問題描述 . 101
7.2 問題分析與解決方案 . 101
7.3 MySQL 主從復(fù)制原理 . 101
7.4 深入理解MySQL 中的二進(jìn)制日志. 103
7.4.1 查看MySQL 二進(jìn)制日志狀態(tài) 103
7.4.2 log_bin 和sql_log_bin 的區(qū)別 104
7.4.3 開啟二進(jìn)制日志 . 104
7.4.4 查看二進(jìn)制日志文件的名稱、大小和狀態(tài) 108
7.4.5 刪除某個日志之前的所有二進(jìn)制日志文件 109
7.4.6 刪除某個時間點以前的二進(jìn)制日志文件 110
7.4.7 刪除所有的二進(jìn)制日志文件 . 111
7.4.8 查看二進(jìn)制日志文件內(nèi)容 . 111
7.4.9 通過二進(jìn)制日志文件恢復(fù)MySQL . 116
7.5 MySQL 主從復(fù)制實戰(zhàn) . 117
7.5.1 構(gòu)建MySQL 主從復(fù)制架構(gòu) 117
7.5.2 使用Spring Boot 整合MySQL 主從復(fù)制架構(gòu) . 126
第8 章 MySQL 分庫分表:MyCAT . 129
8.1 問題描述 . 129
8.2 問題分析與解決方案 . 129
8.3 MyCAT 實戰(zhàn) . 130
8.3.1 構(gòu)建MyCAT 一主多從架構(gòu) 130
8.3.2 構(gòu)建MyCAT 雙主多從環(huán)境 140
8.3.3 MyCAT 分庫――垂直拆分 142
8.3.4 MyCAT 分表――水平拆分 144
8.3.5 構(gòu)建HAProxy + MyCAT + MySQL 高可用架構(gòu) 146
第9 章 MySQL 性能監(jiān)控解決方案:Prometheus+Grafana 152
9.1 問題描述 . 152
9.2 問題分析與解決方案 . 152
9.3 Prometheus 概述與適用場景 152
9.4 時序數(shù)據(jù)庫概述與適用場景 . 153
9.5 Grafana 概述與適用場景 154
9.6 構(gòu)建Prometheus + Grafana 監(jiān)控實戰(zhàn) 154
第10 章 堆內(nèi)緩存解決方案:Java 堆內(nèi)緩存與Guava Cache 171
10.1 問題描述 . 171
10.2 問題分析與解決方案 . 171
10.3 Java 堆內(nèi)緩存 . 172
10.3.1 Java 堆內(nèi)緩存原理 . 172
10.3.2 Java 堆內(nèi)緩存中的常見算法及實戰(zhàn) 173
10.4 Guava Cache 實戰(zhàn) . 190
10.4.1 創(chuàng)建Google 的容器工廠 190
10.4.2 屏蔽NULL 值 . 191
10.4.3 管理字符串 . 192
10.4.4 操作Google 的Multiset 容器 . 192
10.4.5 操作Google 的Multimap 容器 193
10.4.6 操作Google 的BiMap 容器 . 194
10.4.7 操作Google 的Table 容器 . 194
10.4.8 操作Google 的classToInstanceMap 容器 196
10.4.9 操作Google 的RangeSet 容器 . 196
10.4.10 操作Google 的RangeMap 容器. 198
10.4.11 操作Google 的Guava Cache 198
第11 章 堆外緩存與磁盤緩存解決方案:MapDB 203
11.1 問題描述 . 203
11.2 問題分析與解決方案 . 203
11.2.1 堆外緩存 . 203
11.2.2 MapDB 204
11.2.3 實戰(zhàn):初次使用MapDB 205
11.3 MapDB 的構(gòu)造原理 206
11.4 MapDB 的使用方法 208
11.5 MapDB 實戰(zhàn) 210
11.5.1 MapDB 的序列化 210
11.5.2 MapDB 的事務(wù) 211
11.5.3 MapDB 的監(jiān)聽器與多級緩存 212
第12 章 基于Redis 的分布式鎖解決方案:Redisson . 214
12.1 分布式鎖與Redisson 原理 . 214
12.2 單機版超買或超賣問題描述及解決方案 216
12.3 分布式版超買或超賣問題描述及解決方案 218
12.4 多線程死鎖問題描述及解決方案 . 219
12.5 Redisson 實戰(zhàn) 223
12.5.1 Redisson 的可重入鎖 223
12.5.2 Redisson 的公平鎖 223
12.5.3 Redisson 的聯(lián)鎖 225
12.5.4 Redisson 的紅鎖 226
12.5.5 Redisson 的讀寫鎖 227
12.5.6 Redisson 的信號量 229
12.5.7 Redisson 的分布式閉鎖 230
第13 章 Java 中的常見架構(gòu)與工具 . 233
13.1 自動化測試架構(gòu) . 233
13.2 自動化持續(xù)集成部署架構(gòu) . 233
13.3 高并發(fā)架構(gòu) . 234
13.4 響應(yīng)式編程架構(gòu) . 236
13.5 負(fù)載均衡架構(gòu) . 238
13.6 監(jiān)控工具與監(jiān)控架構(gòu) . 239
13.7 其他工具與架構(gòu) . 241

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號