Java項目實戰 版權信息
- ISBN:9787302658535
- 條形碼:9787302658535 ; 978-7-302-65853-5
- 裝幀:平裝
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
Java項目實戰 本書特色
本書全面介紹了Java項目的設計規劃和管理、常用的設計模式、Spring Boot框架的應用、Java項目的部署方案、JVM調優、MySQL的調優方法、Redis的調優方法、消息中間件的調優方法及Elasticsearch的調優方法等方面的知識,通過深入剖析各種實際應用案例和提供一些具體的代碼實現思路和實用技巧,為開發者提供了一個系統性的Java項目實踐指南。本書對技術描述非常詳細,同時力求精簡,幫助讀者理解內容并提升信心,輕松掌握底層工作原理并快速進入實戰。
全面剖析Java通用技術的底層實現,助力讀者掌握通用技術的實際應用通過豐富的案例、故事和實戰經驗等方式對諸多通用性較高的技術進行深入講解配套232分鐘視頻講解、示例源代碼★閱讀完初稿,發現本書是一本非常全面的書、實用的書;在本書中,作者結合個人多年開發經驗,“全生命周期”地講解了在開發過程中會出現的問題及問題的解決建議,有用并實用。對于處在進階階段的程序員來講是不可多得的“開發寶典”,在市面上很難找到一本如此實用的書。
——1_bit,CSDN知名博主
★隨著系統復雜度的日益提升,系統研發及解決問題所需要的技能通常遠遠超出單一Java技能棧的范疇。本書詳細、深入地介紹了成為一名進階后端開發者所需的技能,如設計模式、項目部署、數據庫及緩存等各種調優技巧,讓讀者全方位地理解真實問題的每個細節。同時,本書也深度剖析了大型互聯網應用,并提供了豐富的實戰經驗和實用技能。無論是Java開發者、技術管理人員,還是系統運維人員都能從中受益。本書能幫助讀者快速提升實戰項目經驗,熟練地運用各種技術,為實際項目的成功添磚加瓦。讓這本書成為您技術進階路上的一盞明燈,引領您走向更廣闊的技術世界吧!
——肖旌,Trustana技術總監
★《Java項目實戰——深入理解大型互聯網企業通用技術(進階篇)》非常適合有一定工作經驗的讀者,全書內容側重實戰經驗分享,包括項目管理經驗、代碼設計經驗、項目調優經驗。如果您已經具備Java開發經驗,想從傳統企業轉型到互聯網行業,本書一定是您的不二之選。
—— 譚勇德(Tom),咕泡科技聯合創始人
★《Java項目實戰——深入理解大型互聯網企業通用技術(進階篇)》從項目實戰出發,全面系統地介紹了Java項目的部署方案,囊括了Java技術棧中的常見調優方法,例如JVM調優、MySQL調優、Redis調優、中間件調優等,是一本不可多得的Java進階書籍,理論結合實踐,讓讀者輕松掌握調優技巧,提升職場競爭力,相信本書會成為Java開發者進階架構師的有效助手,值得不同階段的開發者反復閱讀。
——哪吒編程,CSDN2022博客之星
Java項目實戰 內容簡介
本書是一本高質量的實戰指南,面向Java開發者,旨在幫助他們進階成為資深開發者。作者結合多年一線開發經驗,深度剖析大型互聯網企業通用技術的進階應用,提供豐富的實戰經驗和實用技巧。
本書共9章,第1章講解項目管理經驗,第2章從設計模式的角度提升代碼復用、可維護性、擴展性等方面的經驗。第3章深入講解Spring Boot框架的原理和設計思想,幫助讀者更加熟練地運用該框架。第4章主要講解Java項目和中間件部署的相關方案,包括CentOS 7、Docker、DockerCompose、寶塔面板、Kubernetes等。第5~9章講解調優方面的經驗,涵蓋了JVM、MySQL、Redis、消息中間件和ElasticSearch等方面的知識。
本書內容豐富、實用,適合多個崗位的讀者,包括Java開發者、技術管理人員、系統運維人員等。閱讀本書后,讀者能快速提升實戰項目經驗,熟練地運用這些技術,并在實際項目中取得更好的效果,因此,對于工作多年的開發者來講,本書也有不可替代的參考價值。
Java項目實戰 目錄
目錄
第1章項目設計規劃管理1
1.1項目設計規劃/注意事項/項目管理1
1.2項目定位2
1.2.1產品設計2
1.2.2流程圖/產品原型/頁面UI9
1.3項目管理12
1.3.1項目流程12
1.3.2團隊組建17
1.3.3項目文檔20
1.3.4問題梳理21
1.3.5成本管理22
1.4開發部署23
1.4.1開發部署問題23
1.4.2編碼規范問題28
1.4.3代碼分支30
1.4.4版本/Bug處理/環境32
第2章設計模式34
2.1設計模式介紹34
2.1.1工廠方法模式34
2.1.2抽象工廠模式36
2.1.3單例模式39
2.1.4建造者模式40
2.1.5原型模式42
2.1.6適配器模式44
2.1.7橋接模式45
2.1.8裝飾器模式47
2.1.9組合模式49
2.1.10外觀模式51
2.1.11代理模式53
2.1.12模板方法模式54
2.1.13迭代器模式56
2.1.14策略模式57
2.1.15命令模式59
2.1.16責任鏈模式61
2.1.17狀態模式62
2.1.18觀察者模式65
2.1.19中介者模式67
2.1.20訪問者模式68
2.1.21解釋器模式71
2.1.22享元模式72
2.1.23管理者模式74
2.2設計模式使用場景76
2.2.1不同營銷策略的切換場景76
2.2.2對象的創建和管理場景78
2.2.3獎勵分配和活動參與場景80
2.2.4實時消息推送或互動交流場景83
2.2.5用戶的行為響應和推送通知功能場景86
2.2.6記錄核心審計日志場景88
2.2.7商品多級分類目錄場景89
2.2.8開具增值稅發票場景93
2.2.9訂單狀態場景96
2.2.10平臺積分紅包發放場景99
2.2.11業務投放場景101
2.2.12支付場景103
第3章Spring Boot107
3.1自動配置/依賴管理107
3.2實戰集成107
3.2.1使用springbootstarterparent108
3.2.2使用springbootdependencies110
3.2.3使用io.spring.platform112
3.3手寫一個簡易版的Spring Boot113
3.3.1Java代碼直接啟動Tomcat113
3.3.2多態實現WebServer121
3.3.3實現自動配置類127
3.3.4使用條件注解129
3.3.5注入自定義配置類131
3.3.6Spring Boot自動加載134
第4章部署方案137
4.1CentOS 7137
4.1.1介紹137
4.1.2安裝138
4.1.3配置144
4.1.4復制遷移146
4.2寶塔面板159
4.2.1功能介紹159
4.2.2安裝與配置160
4.3Docker167
4.3.1核心概念168
4.3.2功能介紹169
4.3.3安裝與配置170
4.3.4實戰使用174
4.4DockerCompose175
4.4.1功能介紹176
4.4.2命令介紹176
4.4.3安裝與配置176
4.4.4實戰使用178
4.5Kubernetes191
4.5.1部署時代的變遷191
4.5.2容器的好處192
4.5.3容器技術193
4.5.4Kubernetes的好處194
4.5.5Kubernetes技術195
4.5.6項目部署實戰239
4.5.7服務網格與云計算274
4.5.8大型項目架構340
第5章JVM調優361
5.1JVM調優目的原則361
5.2Full GC發生的原因362
5.3常用的工具363
5.3.1Jstack363
5.3.2Jmap364
5.3.3Jstat364
5.3.4JConsole365
5.3.5VisualVM365
5.3.6Arthas366
5.4JVM排查367
5.4.1收集問題信息367
5.4.2確定問題的類型368
5.4.3檢查JVM配置368
5.4.4分析堆轉儲369
5.4.5分析GC日志369
5.4.6分析線程轉儲369
5.4.7進行代碼審查370
5.4.8實驗和更改370
5.5GC場景371
5.5.1大訪問壓力下頻繁進行Minor GC371
5.5.2Minor GC過于頻繁引發Full GC371
5.5.3大對象創建頻繁導致Full GC頻繁出現371
5.5.4Minor GC和Full GC長時間停頓372
5.5.5由內存泄漏導致的MGC和FGC頻繁發生而后出現OOM372
第6章MySQL調優373
6.1表結構設計373
6.1.1建索引374
6.1.2MySQL的索引375
6.2文件排序376
6.3讀入緩沖區大小376
6.4SQL優化377
6.4.1SQL編寫377
6.4.2SQL優化工具378
6.4.3慢SQL優化378
6.5數據分區379
6.5.1表分區379
6.5.2分區表379
6.5.3水平分區379
6.6災備處理380
6.6.1冷備份380
6.6.2熱備份380
6.6.3冷備份與熱備份的權衡380
6.6.4備份注意事項380
6.7高可用380
6.7.1MMM381
6.7.2MHA381
6.7.3MGR381
6.8異常發現處理381
6.8.1數據庫監控382
6.8.2數據庫日志382
6.8.3數據庫巡檢383
6.8.4資源評估383
6.9數據服務383
6.9.1子表結構生成383
6.9.2數據遷移388
6.9.3數據校驗388
6.10讀寫分離388
6.10.1主從數據同步388
6.10.2中間件路由389
6.10.3緩存路由389
第7章Redis調優390
7.1綁定CPU內核390
7.2使用復雜度過高的命令391
7.3大key的存儲和刪除391
7.4數據集中過期392
7.5內存淘汰策略393
7.6碎片整理393
7.7內存大頁394
7.8數據持久化與AOF刷盤394
7.9丟包/中斷/CPU親和性395
7.10操作系統Swap與主從同步397
7.11監控397
7.12高可用398
7.12.1主從同步和哨兵機制398
7.12.2多級緩存398
7.12.3冷熱分離399
7.13緩存雪崩、穿透、擊穿、熱點緩存重構、緩存失效400
第8章消息中間件調優402
8.1消息丟失402
8.1.1消息丟失產生的原因402
8.1.2Kafka402
8.1.3RabbitMQ403
8.1.4RocketMQ403
8.2消息重復消費404
8.3消息順序405
8.4消息積壓406
8.5延遲隊列406
8.6高可用406
8.7Kafka系統調優407
8.7.1硬件調優407
8.7.2網絡調優407
8.7.3Kafka本身調優407
8.8RabbitMQ系統調優412
8.9RocketMQ系統調優414
第9章Elasticsearch調優417
9.1CPU優化417
9.2內存優化418
9.3網絡優化418
9.4磁盤優化420
9.5計算機系統優化420
9.6Elasticsearch本身配置參數421
9.7GC調優421
9.8索引優化設置422
9.8.1批量提交422
9.8.2增加Refresh時間間隔422
9.8.3修改index_buffer_size的設置423
9.8.4修改translog相關的設置423
9.8.5_id字段、_all字段、_source字段、index屬性424
9.8.6減少副本數量424
9.9查詢方面優化424
9.9.1路由優化424
9.9.2routing查詢424
9.9.3Filter與Query的區別425
9.9.4深度翻頁425
9.9.5腳本合理使用425
9.9.6Cache的設置及使用426
9.9.7更多查詢優化經驗426
9.9.8通過開啟慢查詢配置以定位慢查詢428
9.10數據結構優化430
9.10.1減少不需要的字段430
9.10.2Nested Object與Parent/Child431
9.10.3靜態映射431
9.10.4document模型設計431
9.11集群架構設計432
9.11.1主節點和數據節點432
9.11.2Hot節點和Warm節點432
9.11.3協調節點433
9.11.4關閉數據節點服務器中的HTTP功能433
9.11.5一臺服務器上只部署一個節點433
9.11.6集群分片設置434
9.12慢查詢優化434
9.13可用性優化435
9.13.1Elasticsearch原生版本在可用性方面存在的問題435
9.13.2問題的分析436
9.13.3高并發請求壓垮集群436
9.14性能優化438
9.15執行引擎的優化439
9.16成本優化440
9.16.1存儲成本優化440
9.16.2內存成本優化441
9.17擴展性優化442
9.18分析性能問題443
展開全部
Java項目實戰 作者簡介
廖志偉,Java開發者、Java領域優質創作者、CSDN知名博客專家、51CTO專家博主、阿里云專家博主。擁有多年一線研發和團隊管理經驗,主要研究主流框架的底層源碼(Spring、Spring Boot、Spring MVC、SpringCould、Mybatis、Dubbo、ZooKeeper)、消息中間件底層架構原理(RabbitMQ、RockerMQ、Kafka)、Redis緩存、MySQL關系型數據庫、Elasticsearch全文搜索、MongoDB非關系型數據庫、Apache ShardingSphere分庫分表讀寫分離、設計模式、領域驅動DDD、Kubernetes等。長期堅持撰寫技術博客,目前主要活躍在CSDN博客社區。