├── Java
├── JVM
│ ├── 内存模型
│ │ ├── Java内存模型.png
│ │ ├── Java内存模型.xmind
│ │ └── 配图.pptx
│ ├── 内存结构
│ │ ├── 内存结构.png
│ │ └── 内存结构.xmind
│ └── 垃圾回收
│ │ ├── 垃圾回收.png
│ │ ├── 垃圾回收.xmind
│ │ └── 配图.pptx
├── 并发
│ ├── AQS
│ │ ├── AQS(队列同步器).xmind
│ │ ├── 未完待续.txt
│ │ └── 配图.pptx
│ ├── Disruptor
│ │ ├── Disruptor.png
│ │ └── Disruptor.xmind
│ ├── Java多线程
│ │ ├── Java多线程.png
│ │ ├── Java多线程.xmind
│ │ └── 配图.pptx
│ └── 线程池
│ │ ├── 线程池.png
│ │ └── 线程池.xmind
└── 集合
│ ├── ArrayList和LinkedList
│ ├── ArrayList和LinkedList.png
│ ├── ArrayList和LinkedList.xmind
│ └── 配图.pptx
│ └── HashMap和ConcurrentHashMap
│ ├── HashMap和 ConcurrentHashMap.xmind
│ └── HashMap和 ConcurrentHashMap .png
├── README.md
├── logo
├── logo.png
└── logo.pptx
├── 分布式
├── Dubbo
│ ├── Dubbo.png
│ └── Dubbo.xmind
├── Netty
│ ├── Netty.png
│ ├── Netty.xmind
│ └── 配图.pptx
├── Redis
│ ├── Redis.png
│ ├── Redis.xmind
│ └── 配图.pptx
├── ZooKeeper
│ ├── ZooKeeper.png
│ └── ZooKeeper.xmind
└── 分布式锁
│ ├── 分布式锁.png
│ ├── 分布式锁.xmind
│ └── 配图.pptx
├── 数据库
├── MySQL事务
│ ├── MySQL事务.png
│ ├── MySQL事务.xmind
│ └── 配图.pptx
├── MySQL锁
│ ├── MySQL锁.png
│ ├── MySQL锁.xmind
│ └── 配图.pptx
└── 数据库要点
│ ├── 数据库要点.png
│ ├── 数据库要点.xmind
│ └── 配图.pptx
├── 方法论
├── Java服务线上应急
│ ├── Java服务线上解决方法论.xmind
│ ├── Java服务线上问题应急.png
│ ├── 工具脚本
│ │ ├── 1_系统基本情况统计.sh
│ │ ├── 2_应用基本情况统计.sh
│ │ └── show-busiest-java-threads
│ └── 配图.pptx
├── 开源项目学习
│ ├── 开源项目学习.png
│ └── 开源项目学习.xmind
└── 架构设计方法
│ ├── 架构设计方法.png
│ └── 架构设计方法.xmind
└── 计算机网络
├── TCP和HTTP
├── TCP和HTTP.png
├── TCP和HTTP.xmind
├── TCP状态变迁图.png
└── 配图.pptx
└── 互联网协议
├── 互联网协议.png
├── 互联网协议.xmind
└── 配图.pptx
/Java/JVM/内存模型/Java内存模型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/内存模型/Java内存模型.png
--------------------------------------------------------------------------------
/Java/JVM/内存模型/Java内存模型.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/内存模型/Java内存模型.xmind
--------------------------------------------------------------------------------
/Java/JVM/内存模型/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/内存模型/配图.pptx
--------------------------------------------------------------------------------
/Java/JVM/内存结构/内存结构.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/内存结构/内存结构.png
--------------------------------------------------------------------------------
/Java/JVM/内存结构/内存结构.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/内存结构/内存结构.xmind
--------------------------------------------------------------------------------
/Java/JVM/垃圾回收/垃圾回收.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/垃圾回收/垃圾回收.png
--------------------------------------------------------------------------------
/Java/JVM/垃圾回收/垃圾回收.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/垃圾回收/垃圾回收.xmind
--------------------------------------------------------------------------------
/Java/JVM/垃圾回收/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/JVM/垃圾回收/配图.pptx
--------------------------------------------------------------------------------
/Java/并发/AQS/AQS(队列同步器).xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/AQS/AQS(队列同步器).xmind
--------------------------------------------------------------------------------
/Java/并发/AQS/未完待续.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/AQS/未完待续.txt
--------------------------------------------------------------------------------
/Java/并发/AQS/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/AQS/配图.pptx
--------------------------------------------------------------------------------
/Java/并发/Disruptor/Disruptor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/Disruptor/Disruptor.png
--------------------------------------------------------------------------------
/Java/并发/Disruptor/Disruptor.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/Disruptor/Disruptor.xmind
--------------------------------------------------------------------------------
/Java/并发/Java多线程/Java多线程.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/Java多线程/Java多线程.png
--------------------------------------------------------------------------------
/Java/并发/Java多线程/Java多线程.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/Java多线程/Java多线程.xmind
--------------------------------------------------------------------------------
/Java/并发/Java多线程/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/Java多线程/配图.pptx
--------------------------------------------------------------------------------
/Java/并发/线程池/线程池.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/线程池/线程池.png
--------------------------------------------------------------------------------
/Java/并发/线程池/线程池.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/并发/线程池/线程池.xmind
--------------------------------------------------------------------------------
/Java/集合/ArrayList和LinkedList/ArrayList和LinkedList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/集合/ArrayList和LinkedList/ArrayList和LinkedList.png
--------------------------------------------------------------------------------
/Java/集合/ArrayList和LinkedList/ArrayList和LinkedList.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/集合/ArrayList和LinkedList/ArrayList和LinkedList.xmind
--------------------------------------------------------------------------------
/Java/集合/ArrayList和LinkedList/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/集合/ArrayList和LinkedList/配图.pptx
--------------------------------------------------------------------------------
/Java/集合/HashMap和ConcurrentHashMap/HashMap和 ConcurrentHashMap.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/集合/HashMap和ConcurrentHashMap/HashMap和 ConcurrentHashMap.xmind
--------------------------------------------------------------------------------
/Java/集合/HashMap和ConcurrentHashMap/HashMap和 ConcurrentHashMap .png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/Java/集合/HashMap和ConcurrentHashMap/HashMap和 ConcurrentHashMap .png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |

4 |
5 |
6 | # Java服务端知识技能图谱
7 |
8 | [](https://github.com/caison/java-knowledge-mind-map/blob/master/LICENSE)
9 | [](https://github.com/caison/java-knowledge-mind-map)
10 | [](https://github.com/caison/java-knowledge-mind-map/stargazers)
11 | [](https://github.com/caison/java-knowledge-mind-map/network/members)
12 | [](https://github.com/caison/java-knowledge-mind-map/issues)
13 | [](http://makeapullrequest.com)
14 |
15 | # 目录
16 | ## ☕Java
17 | * JVM
18 | * [垃圾回收](/Java/JVM/垃圾回收/)
19 | 各种引用类型、判断对象存活的算法、垃圾回收算法
20 | * [内存结构](/Java/JVM/内存结构/)
21 | Java内存结构图,堆、方法区、虚拟机栈、本地方法栈、程序计数器
22 | * [内存模型](/Java/JVM/内存模型/)
23 | 内存模型产生背景、Java内存模型组成分析、内存间的交互操作、运行规则、volatile变量规则等
24 | * 并发
25 | * [线程池](/Java/并发/线程池/)
26 | 线程池解决的问题、阻塞队列、线程池架构、任务饱和策略、线程池配置、线程池关闭、常见线程池类型
27 | * [Java多线程](/Java/并发/Java多线程/)
28 | 线程和进程基本概念、多线程编程面临的问题和解决方案、线程安全、线程协作、线程中断等
29 | * [Disruptor](/Java/并发/Disruptor/)
30 | Disruptor介绍,架构设计,高性能原理,使用场景等
31 | * 集合
32 | * [ArrayList和LinkedList](/Java/集合/ArrayList和LinkedList/)
33 | ArrayList和LinkedList的基本原理,基本操作实现,2者的比较
34 | * [HashMap和ConcurrentHashMap](/Java/集合/HashMap和ConcurrentHashMap/)
35 | jdk7、jdk8的HashMap和ConcurrentHashMap实现解析,并发分析,关键参数
36 |
37 | ## ☁️分布式
38 | * [Redis](/分布式/Redis/)
39 | Redis基本介绍、数据类型、持久化机制、缓存过期策略、集群方案、与Memcached比较、缓存穿透、缓存雪崩、缓存热点、缓存一致性、线上问题排查
40 | * [Dubbo](/分布式/Dubbo/)
41 | RPC介绍、Dubbo特性、架构、负载均衡、集群容错策略
42 | * [ZooKeeper](/分布式/ZooKeeper/)
43 | 功能与特性、架构设计(高性能、高可用、数据一致性实现原理)、应用场景、作为注册中心缺点分析
44 | * [分布式锁](/分布式/分布式锁/)
45 | 分布式锁概念、使用场景、基于Redis/ZooKeeper/数据库的分布式锁方案实现与解析
46 | * [Netty](/分布式/Netty/)
47 | Netty基本概念,网络I/O模型,线程模型,基本工作原理,系统架构
48 |
49 | ## 💾数据库
50 | **涉及概念比较多,建议阅读顺序:数据库要点、MySQL事务、MySQL锁**
51 | * [数据库要点](/数据库/数据库要点/)
52 | MySQL的Innodb与MyISAM比较、索引、SQL优化、SQL执行流程、主从同步原理等
53 | * [MySQL事务](/数据库/MySQL事务/)
54 | MySQL事务流程和原理、MVCC原理
55 | * [MySQL锁](/数据库/MySQL锁/)
56 | MySQL锁分类,各种锁的作用,加锁原理,加锁分析
57 |
58 | ## 📡计算机网络
59 | * [互联网协议](/计算机网络/互联网协议)
60 | 互联网协议五层协议(应用层、传输层、网络层、链路层、物理层)由来,概念定义、作用的解析
61 | * [TCP和HTTP](/计算机网络/TCP和HTTP)
62 | TCP状态变迁图、TCP相关常见问题概念(三次握手,四次挥手),HTTP相关问题概念解析
63 |
64 | ## 💪方法论
65 | * [架构设计方法](/方法论/架构设计方法)
66 | 架构设计相关基本概念、架构设计的目的、设计原则、架构设计基本设计流程等
67 | * [开源项目学习](/方法论/开源项目学习)
68 | 学习开源项目常见错误观点解析,学习的层次,学习的方法步骤介绍
69 | * [Java服务线上应急](/方法论/Java服务线上应急)
70 | 线上服务应急流程,问题解决的思路、技巧,常见工具,命令行工具脚本
71 |
72 | # 类似github知识库
73 | * [architecture.of.internet-product 互联网公司技术架构,微信/淘宝/微博/腾讯/阿里/美团点评/百度/Google/Facebook/Amazon/eBay的架构](https://github.com/davideuler/architecture.of.internet-product)
74 | * [📚 CyC Computer Science Learning Notes (技术面试需要掌握的基础知识整理)](https://github.com/CyC2018/CS-Notes)
75 | * [😮 advanced-java 互联网 Java 工程师进阶知识完全扫盲](https://github.com/doocs/advanced-java)
76 | * [technology-talk 汇总java生态圈常用技术框架、开源中间件,系统架构、项目管理、经典架构案例、数据库、常用三方库、线上运维等知识](https://github.com/aalansehaiyang/technology-talk)
77 | * [architect-awesome 《后端架构师技术图谱》](https://github.com/xingshaocheng/architect-awesome)
78 | * [To Be Top Javaer - Java工程师成神之路](https://github.com/hollischuang/toBeTopJavaer)
79 | * [miaosha 😮😮秒杀系统设计与实现.互联网工程师进阶与分析🙋🐓](https://github.com/qiurunze123/miaosha)
80 | * [interviews 软件工程技术面试个人指南](https://github.com/kdn251/interviews/blob/master/README-zh-cn.md)
81 | * [JavaGuide 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识](https://github.com/Snailclimb/JavaGuide)
82 | * [🎓 Java Core Sprout : basic, concurrent, algorithm](https://github.com/crossoverJie/JCSprout)
83 | * [j360-tools Java底层知识点、技术栈相关原理知识点、工具最佳实践](https://github.com/xuminwlt/j360-tools)
84 | * [Java is Growing up but not only Java。Java成长路线,但学到不仅仅是Java](https://github.com/javagrowing/JGrowing)
85 |
86 | # 建立这个库的目的
87 | 个人建立这个库最大的目的是为了成长,梳理脑图只是一个手段,但不是结果,只是一个高效的学习方法。
88 |
89 | 通过梳理脑图,针对一个模糊的知识点,我会不断提问,问自己这个知识点是怎么,解决了什么问题,有什么优劣,适用场景,以实现高效学习的最终目的。
90 |
91 | **知识的本质是要解决问题,只有通过把知识一头连接着输入问题,一头连接着输出问题,你才算是学会了知识**,现实观察中,很多人,包括以前我自己,也会犯“**以为记住知识就是学会知识,用记忆的方法来学习**”的错误。
92 |
93 | 做知识的梳理的时候要关注知识解决的问题,在大脑中形成连接,而脑图,正是这个学习过程的一个高效手段。
94 |
95 | 此外,通过分享脑图,实现个人较为推崇另外一个学习方式,通过分享知识的方式(例如写博客,写开源项目)来学习(费曼方法),因为在分享中不断去验证知识,加强大脑知识连接,以实现高效学习的目的。
96 |
97 |
98 | # 联系作者
99 | * 邮箱 caison@aliyun.com
100 | * 微信 hua1881375
101 |
102 |
103 |
104 |

105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/logo/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/logo/logo.png
--------------------------------------------------------------------------------
/logo/logo.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/logo/logo.pptx
--------------------------------------------------------------------------------
/分布式/Dubbo/Dubbo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Dubbo/Dubbo.png
--------------------------------------------------------------------------------
/分布式/Dubbo/Dubbo.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Dubbo/Dubbo.xmind
--------------------------------------------------------------------------------
/分布式/Netty/Netty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Netty/Netty.png
--------------------------------------------------------------------------------
/分布式/Netty/Netty.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Netty/Netty.xmind
--------------------------------------------------------------------------------
/分布式/Netty/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Netty/配图.pptx
--------------------------------------------------------------------------------
/分布式/Redis/Redis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Redis/Redis.png
--------------------------------------------------------------------------------
/分布式/Redis/Redis.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Redis/Redis.xmind
--------------------------------------------------------------------------------
/分布式/Redis/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/Redis/配图.pptx
--------------------------------------------------------------------------------
/分布式/ZooKeeper/ZooKeeper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/ZooKeeper/ZooKeeper.png
--------------------------------------------------------------------------------
/分布式/ZooKeeper/ZooKeeper.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/ZooKeeper/ZooKeeper.xmind
--------------------------------------------------------------------------------
/分布式/分布式锁/分布式锁.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/分布式锁/分布式锁.png
--------------------------------------------------------------------------------
/分布式/分布式锁/分布式锁.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/分布式锁/分布式锁.xmind
--------------------------------------------------------------------------------
/分布式/分布式锁/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/分布式/分布式锁/配图.pptx
--------------------------------------------------------------------------------
/数据库/MySQL事务/MySQL事务.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL事务/MySQL事务.png
--------------------------------------------------------------------------------
/数据库/MySQL事务/MySQL事务.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL事务/MySQL事务.xmind
--------------------------------------------------------------------------------
/数据库/MySQL事务/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL事务/配图.pptx
--------------------------------------------------------------------------------
/数据库/MySQL锁/MySQL锁.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL锁/MySQL锁.png
--------------------------------------------------------------------------------
/数据库/MySQL锁/MySQL锁.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL锁/MySQL锁.xmind
--------------------------------------------------------------------------------
/数据库/MySQL锁/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/MySQL锁/配图.pptx
--------------------------------------------------------------------------------
/数据库/数据库要点/数据库要点.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/数据库要点/数据库要点.png
--------------------------------------------------------------------------------
/数据库/数据库要点/数据库要点.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/数据库要点/数据库要点.xmind
--------------------------------------------------------------------------------
/数据库/数据库要点/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/数据库/数据库要点/配图.pptx
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/Java服务线上解决方法论.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/Java服务线上应急/Java服务线上解决方法论.xmind
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/Java服务线上问题应急.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/Java服务线上应急/Java服务线上问题应急.png
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/工具脚本/1_系统基本情况统计.sh:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## @作者: 陈彩华(caison@aliyun.com)
4 | ## @创建时间: 2019-02-07
5 | ## @功能: 系统基本运行情况监控
6 | ## @使用:sh 1_系统基本情况统计.sh
7 | echo
8 | echo
9 | echo -e "\033[33m--------------------------------计算负载------------------------------------------\033[0m"
10 |
11 | echo -e "\033[34m[CPU]\033[0m"
12 | iostat -c | awk 'NR==3 || NR==4 {print}'
13 | echo -e "\033[32muser-用户空间CPU时间占比,system-系统空间CPU时间占比\033[0m"
14 | echo -e "\033[32miowait-CPU io等待时间占比,idle-CPU空闲时间占比\033[0m"
15 |
16 | echo
17 | echo -e "\033[34m[进程数]\033[0m"
18 | ps -ef|wc -l
19 |
20 |
21 | echo
22 |
23 |
24 | echo -e "\033[33m--------------------------------存储负载------------------------------------------\033[0m"
25 | echo -e "\033[34m[内存空间使用]\033[0m"
26 | free -m
27 | echo -e "\033[32m单位-Mb,Mem-物理内存,Swap-虚拟内存\033[0m"
28 | echo -e "\033[32m单位-Mb,total-总内存,available-可用内存\033[0m"
29 | echo
30 | echo -e "\033[34m[磁盘空间使用]\033[0m"
31 | df -h
32 |
33 | echo
34 | echo -e "\033[34m[磁盘吞吐率]\033[0m"
35 | iostat -d -m | awk 'NR>2{print}'| awk '/./ {print}'
36 | echo -e "\033[32m单位-Mb,tps-每秒io次数,MB_read/s-每秒读的数据量,MB_wrtn/s-每秒写的数据量\033[0m"
37 | echo
38 |
39 | echo -e "\033[34m[文件句柄数]\033[0m"
40 | lsof|awk '{print $2}'|wc -l
41 | echo
42 |
43 | echo -e "\033[33m--------------------------------网络负载------------------------------------------\033[0m"
44 | echo -e "\033[34m[TCP连接数]\033[0m"
45 | echo $(netstat -nat|wc -l)
46 | echo
47 |
48 | echo -e "\033[34m[端口连接状态]\033[0m"
49 | netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
50 | echo -e "\033[32mLISTEN-监听状态\033[0m"
51 | echo -e "\033[32mCLOSE_WAIT-对方主动关闭连接或者网络异常导致连接中断-状态\033[0m"
52 | echo -e "\033[32mESTABLISHED-正常数据传输状态\033[0m"
53 | echo -e "\033[32mTIME_WAIT-处理完毕等待超时结束状态\033[0m"
54 | echo
55 |
56 | echo -e "\033[34m[网卡流量]\033[0m"
57 | sar -n DEV 1 3 |awk 'NR>2 {print}'
58 | echo -e "\033[32mrxpck/s-每秒接收包的数量,txpck/s-每秒发出的包的数量\033[0m"
59 | echo -e "\033[32mrxKB/s-每秒接收的数据量,txKB/s-每秒发出的数据量,单位KB\033[0m"
60 |
61 | echo
62 | echo -e "\033[33m--------------------------------参考------------------------------------------\033[0m"
63 | echo -e "\033[32mCPU占用最多的前10个进程:ps auxw|head -1;ps auxw|sort -rn -k3|head -10\033[0m"
64 | echo -e "\033[32m内存消耗最多的前10个进程:ps auxw|head -1;ps auxw|sort -rn -k4|head -10\033[0m"
65 | echo -e "\033[32m虚拟内存使用最多的前10个进程:ps auxw|head -1;ps auxw|sort -rn -k5|head -10\033[0m"
66 |
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/工具脚本/2_应用基本情况统计.sh:
--------------------------------------------------------------------------------
1 |
2 | ## @作者: 陈彩华(caison@aliyun.com)
3 | ## @创建时间: 2019-02-07
4 | ## @功能: 应用基本情况统计
5 | ## @使用:sh 1_应用基本情况统计.sh [进程十进制id]
6 | ## @注意:建议使用root权限运行
7 | echo
8 | echo
9 |
10 | pid=$1
11 | if [ ! $pid ]
12 | then
13 | echo 输入进程id为空
14 | exit
15 | fi
16 | echo 输入进程id = $pid
17 |
18 |
19 | echo -e "\033[33m--------------------------------计算负载------------------------------------------\033[0m"
20 | echo -e "\033[34m[近3秒进程CPU使用率]\033[0m"
21 |
22 | declare -i counter=0
23 | #use while to loop
24 | while ((counter<3));do
25 | let ++counter
26 | echo $(top -b -n 1 -p $pid 2>&1 | awk -v pid=$pid '{if ($1 == pid)print $9}')
27 | sleep 1
28 | done
29 | echo
30 |
31 | echo -e "\033[34m[进程线程数]\033[0m"
32 | ps hH p $pid|wc -l
33 | echo
34 |
35 | # lsof 安装命令yum install lsof -y
36 | echo -e "\033[33m--------------------------------存储负载------------------------------------------\033[0m"
37 | echo -e "\033[34m[进程内存空间使用]\033[0m"
38 | echo $(cat /proc/$pid/status|grep -e VmRSS| awk '{print $2/1024 "Mb"}')
39 | echo
40 |
41 |
42 | echo -e "\033[34m[进程打开文件句柄数]\033[0m"
43 | echo $(lsof -n|awk '{print $2}'|grep -e $pid|uniq -c |awk '{print $1}')
44 | echo
45 |
46 | echo -e "\033[33m--------------------------------网络负载------------------------------------------\033[0m"
47 | echo -e "\033[34m[应用TCP连接数]\033[0m"
48 | lsof -p $pid -nP|grep TCP|wc -l
49 | echo
50 |
51 | echo -e "\033[34m[端口TCP连接状态]\033[0m"
52 | echo LISTEN $(lsof -p $pid -nP |grep TCP|grep LISTEN|wc -l)
53 | echo CLOSE_WAIT $(lsof -p $pid -nP |grep TCP|grep CLOSE_WAIT|wc -l)
54 | echo ESTABLISHED $(lsof -p $pid -nP |grep TCP|grep ESTABLISHED|wc -l)
55 | echo TIME_WAIT $(lsof -p $pid -nP |grep TCP|grep TIME_WAIT|wc -l)
56 | echo -e "\033[32mLISTEN-监听状态\033[0m"
57 | echo -e "\033[32mCLOSE_WAIT-对方主动关闭连接或者网络异常导致连接中断-状态\033[0m"
58 | echo -e "\033[32mESTABLISHED-正常数据传输状态\033[0m"
59 | echo -e "\033[32mTIME_WAIT-处理完毕等待超时结束状态\033[0m"
60 | echo
61 | echo
62 |
63 | echo
64 | echo -e "\033[33m--------------------------------参考------------------------------------------\033[0m"
65 |
66 |
67 | echo -e "\033[32m jstack 可用于打印线程堆栈信息,注意关注线程阻塞状况\033[0m"
68 |
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/工具脚本/show-busiest-java-threads:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # @Function
3 | # Find out the highest cpu consumed threads of java, and print the stack of these threads.
4 | #
5 | # @Usage
6 | # $ ./show-busy-java-threads.sh
7 | #
8 | # @author Jerry Lee
9 |
10 | PROG=`basename $0`
11 |
12 | usage() {
13 | cat < /dev/null; then
63 | [ -n "$JAVA_HOME" ] && [ -f "$JAVA_HOME/bin/jstack" ] && [ -x "$JAVA_HOME/bin/jstack" ] && {
64 | export PATH="$JAVA_HOME/bin:$PATH"
65 | } || {
66 | redEcho "Error: jstack not found on PATH and JAVA_HOME!"
67 | exit 1
68 | }
69 | fi
70 |
71 | uuid=`date +%s`_${RANDOM}_$$
72 |
73 | cleanupWhenExit() {
74 | rm /tmp/${uuid}_* &> /dev/null
75 | }
76 | trap "cleanupWhenExit" EXIT
77 |
78 | printStackOfThread() {
79 | while read threadLine ; do
80 | pid=`echo ${threadLine} | awk '{print $1}'`
81 | threadId=`echo ${threadLine} | awk '{print $2}'`
82 | threadId0x=`printf %x ${threadId}`
83 | user=`echo ${threadLine} | awk '{print $3}'`
84 | pcpu=`echo ${threadLine} | awk '{print $5}'`
85 |
86 | jstackFile=/tmp/${uuid}_${pid}
87 |
88 | [ ! -f "${jstackFile}" ] && {
89 | jstack -F ${pid} > ${jstackFile} || {
90 | redEcho "Fail to jstack java process ${pid}!"
91 | rm ${jstackFile}
92 | continue
93 | }
94 | }
95 |
96 | redEcho "The stack of busy(${pcpu}%) thread(${threadId}/0x${threadId0x}) of java process(${pid}) of user(${user}):"
97 | sed "/nid=0x${threadId0x}/,/^$/p" -n ${jstackFile}
98 | done
99 | }
100 |
101 | [ -z "${pid}" ] && {
102 | ps -Leo pid,lwp,user,comm,pcpu --no-headers | awk '$4=="java"{print $0}' |
103 | sort -k5 -r -n | head --lines "${count}" | printStackOfThread
104 | } || {
105 | ps -Leo pid,lwp,user,comm,pcpu --no-headers | awk -v "pid=${pid}" '$1==pid,$4=="java"{print $0}' |
106 | sort -k5 -r -n | head --lines "${count}" | printStackOfThread
107 | }
108 |
--------------------------------------------------------------------------------
/方法论/Java服务线上应急/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/Java服务线上应急/配图.pptx
--------------------------------------------------------------------------------
/方法论/开源项目学习/开源项目学习.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/开源项目学习/开源项目学习.png
--------------------------------------------------------------------------------
/方法论/开源项目学习/开源项目学习.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/开源项目学习/开源项目学习.xmind
--------------------------------------------------------------------------------
/方法论/架构设计方法/架构设计方法.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/架构设计方法/架构设计方法.png
--------------------------------------------------------------------------------
/方法论/架构设计方法/架构设计方法.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/方法论/架构设计方法/架构设计方法.xmind
--------------------------------------------------------------------------------
/计算机网络/TCP和HTTP/TCP和HTTP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/TCP和HTTP/TCP和HTTP.png
--------------------------------------------------------------------------------
/计算机网络/TCP和HTTP/TCP和HTTP.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/TCP和HTTP/TCP和HTTP.xmind
--------------------------------------------------------------------------------
/计算机网络/TCP和HTTP/TCP状态变迁图.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/TCP和HTTP/TCP状态变迁图.png
--------------------------------------------------------------------------------
/计算机网络/TCP和HTTP/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/TCP和HTTP/配图.pptx
--------------------------------------------------------------------------------
/计算机网络/互联网协议/互联网协议.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/互联网协议/互联网协议.png
--------------------------------------------------------------------------------
/计算机网络/互联网协议/互联网协议.xmind:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/互联网协议/互联网协议.xmind
--------------------------------------------------------------------------------
/计算机网络/互联网协议/配图.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/caison/java-knowledge-mind-map/94f9b71a9ed11fb4b373a2e99be031c768852bca/计算机网络/互联网协议/配图.pptx
--------------------------------------------------------------------------------