├── 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 | [![license](https://img.shields.io/badge/license-Attribution--NonCommercial%204.0%20-brightgreen.svg)](https://github.com/caison/java-knowledge-mind-map/blob/master/LICENSE) 9 | [![original](https://img.shields.io/badge/original-陈彩华-orange.svg)](https://github.com/caison/java-knowledge-mind-map) 10 | [![stars](https://img.shields.io/github/stars/caison/java-knowledge-mind-map.svg)](https://github.com/caison/java-knowledge-mind-map/stargazers) 11 | [![forks](https://img.shields.io/github/forks/caison/java-knowledge-mind-map.svg)](https://github.com/caison/java-knowledge-mind-map/network/members) 12 | [![issues](https://img.shields.io/github/issues/caison/java-knowledge-mind-map.svg)](https://github.com/caison/java-knowledge-mind-map/issues) 13 | [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg)](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 --------------------------------------------------------------------------------