Merge branch 'master' of github.com:heibaiying/Full-Stack-Notes
This commit is contained in:
commit
57dd3fbd31
225
README.md
225
README.md
@ -7,99 +7,220 @@
|
||||
<strong>一个处于萌芽阶段的知识库,用于持续分享自己的所见、所学、所思!</strong>
|
||||
</div>
|
||||
|
||||
# :coffee: JAVA
|
||||
|
||||
+ [Java 反射与注解](notes/Java_反射与注解.md)
|
||||
+ [Java 并发编程](notes/Java_并发编程.md)
|
||||
+ [Java 设计模式](notes/Java_设计模式.md)
|
||||
+ [Java 虚拟机](notes/Java_虚拟机.md)
|
||||
## :coffee: JAVA
|
||||
|
||||
1. [Java 反射与注解](notes/Java_反射与注解.md)
|
||||
|
||||
反射机制、自定义注解、@Target 与 @Retention、注解的继承
|
||||
|
||||
## 💻 前端基础
|
||||
2. [Java 并发编程](notes/Java_并发编程.md)
|
||||
|
||||
- [JavaScript 基础](notes/JavaScript_基础.md)
|
||||
- [ECMAScript 6.0 基础](notes/ES6_基础.md)
|
||||
非原子性协定、计算机多级高速缓存、缓存一致性协议、写缓冲与无效化队列、内存屏障、锁机制、无锁 CAS、线程池
|
||||
|
||||
## :globe_with_meridians: 网络基础
|
||||
+ [计算机网络模型](notes/计算机网络.md)
|
||||
3. [Java 设计模式](notes/Java_设计模式.md)
|
||||
|
||||
## 💾 数据库
|
||||
软件设计原则、单例模式(使用序列化和反射破坏单例、防御序列化和反射攻击、枚举类单例)等 23 种设计模式
|
||||
|
||||
4. [Java 虚拟机](notes/Java_虚拟机.md)
|
||||
|
||||
Java 内存区域、垃圾收集算法、经典垃圾收集器、双亲委派模型、分层编译、热点代码探测、方法内联、逃逸分析
|
||||
|
||||
5. Jvm 监控工具
|
||||
|
||||
6. Java 8 函数式编程
|
||||
|
||||
7. 静态代理与动态代理
|
||||
|
||||
8. IO、NIO、AIO
|
||||
|
||||
9. Socket 网络编程系列
|
||||
|
||||
10. 高性能网络框架 Netty
|
||||
|
||||
11. Java 集合类源码解析
|
||||
|
||||
12. Tomcat 架构解析
|
||||
|
||||
<br/>
|
||||
|
||||
## :globe_with_meridians: 计算机与网络基础
|
||||
|
||||
1. [计算机网络模型](notes/计算机网络.md)
|
||||
|
||||
四层、五层、七层计算机网络模型、信道复用、PPP 协议、ARP 协议、划分子网与构成超网、TCP 三次握手与四次挥手
|
||||
|
||||
2. HTTP 协议详解
|
||||
|
||||
3. HTTPS 协议详解
|
||||
|
||||
4. 抓包神器 Wireshark
|
||||
|
||||
5. 计算机组成原理
|
||||
|
||||
<br/>
|
||||
|
||||
## :computer: 前端基础
|
||||
|
||||
1. [JavaScript 基础](notes/JavaScript_基础.md)
|
||||
|
||||
基本数据类型、引用类型、内置对象(Global 与 window)、作用域与闭包、对象设计
|
||||
|
||||
2. [ECMAScript 6.0 基础](notes/ES6_基础.md)
|
||||
|
||||
变量声明、对象字面量、对象解构、Symbol、迭代器与生成器、类、代理与反射、模块化
|
||||
|
||||
3. CSS 基础
|
||||
|
||||
选择器、非局部样式、布局样式、效果属性、CSS 动画
|
||||
|
||||
4. JavaScript 设计模式
|
||||
|
||||
<br/>
|
||||
|
||||
## :dolphin: 数据库
|
||||
|
||||
### MySQL
|
||||
|
||||
+ [MySQL 核心概念](notes/MySQL_基础.md)
|
||||
+ [MySQL 备份详解](notes/MySQL_备份.md)
|
||||
+ [MySQL 二进制日志复制、GTID 复制与半同步复制](notes/MySQL_复制.md)
|
||||
+ [MySQL 高可用架构之 PXC 集群](notes/MySQL_PXC集群.md)
|
||||
+ [MyCat 读写分离与分库分表](notes/MySQL_Mycat中间件.md)
|
||||
+ [MySQL 查询性能分析之 Explain](notes/MySQL_EXPLAIN.md)
|
||||
1. [MySQL 核心概念](notes/MySQL_基础.md)
|
||||
|
||||
B+ Tree 树、聚集索引和非聚集索引、共享锁与排他锁、意向共享锁与意向排它锁、一致性锁定读与一致性非锁定读
|
||||
|
||||
2. [MySQL 备份详解](notes/MySQL_备份.md)
|
||||
|
||||
备份类型、mysqldump 备份、mysqlpump 备份、Xtrabackup 备份、二进制日志备份
|
||||
|
||||
3. [MySQL 复制详解](notes/MySQL_复制.md)
|
||||
|
||||
基于二进制日志的复制、基于 GTID 的复制、半同步复制、高可用架构 MMM 和 MHA
|
||||
|
||||
4. [MySQL 高可用架构之 PXC 集群](notes/MySQL_PXC集群.md)
|
||||
|
||||
5. [MyCat 读写分离与分库分表](notes/MySQL_Mycat中间件.md)
|
||||
|
||||
6. [MySQL 查询性能分析之 Explain](notes/MySQL_EXPLAIN.md)
|
||||
|
||||
### Redis
|
||||
|
||||
+ [Redis 基本数据类型和常用命令](notes/Redis_数据类型和常用命令.md)
|
||||
+ [Redis AOF 和 RDB 持久化策略原理](notes/Redis_持久化.md)
|
||||
+ [Redis 哨兵模式](notes/Redis_哨兵模式.md)
|
||||
+ [Redis 集群模式](notes/Redis_集群模式.md)
|
||||
1. [Redis 基本数据类型和常用命令](notes/Redis_数据类型和常用命令.md)
|
||||
|
||||
2. [Redis AOF 和 RDB 持久化策略原理](notes/Redis_持久化.md)
|
||||
|
||||
3. [Redis 哨兵模式](notes/Redis_哨兵模式.md)
|
||||
|
||||
复制机制、哨兵模式架构说明、哨兵模式搭建
|
||||
|
||||
4. [Redis 集群模式](notes/Redis_集群模式.md)
|
||||
|
||||
数据分区、节点通信、请求路由、故障发现与恢复、集群扩容与缩容
|
||||
|
||||
5. 使用 Redis 实现分布式锁
|
||||
|
||||
|
||||
### MongoDB
|
||||
|
||||
+ [MongoDB 基础](notes/MongoDB_基础.md)
|
||||
+ [MongoDB 索引](notes/MongoDB_索引.md)
|
||||
+ [MongoDB 聚合](notes/MongoDB_聚合.md)
|
||||
+ [MongoDB 复制](notes/MongoDB_复制.md)
|
||||
+ [MongoDB 分片](notes/MongoDB_分片.md)
|
||||
1. [MongoDB 基础](notes/MongoDB_基础.md)
|
||||
|
||||
2. [MongoDB 索引](notes/MongoDB_索引.md)
|
||||
|
||||
单字段索引、复合索引、多键索引、哈希所有、地理空间索引、文本索引;唯一索引、稀疏索引、部分索引、TTL 索引
|
||||
|
||||
## 📟 系统与容器
|
||||
3. [MongoDB 聚合](notes/MongoDB_聚合.md)
|
||||
|
||||
+ [Linux 常用 Shell 命令](notes/Linux_常用Shell命令.md)
|
||||
+ [Sehll 脚本编程基础](notes/Shell_基础.md)
|
||||
+ [Docker 基础](notes/Docker_基础.md)
|
||||
常用聚合管道、单用途聚合方法、MapReduce
|
||||
|
||||
4. [MongoDB 复制](notes/MongoDB_复制.md)
|
||||
|
||||
复制功能、故障发现、优先选举、投票成员、副本集搭建
|
||||
|
||||
## :books: 常用技术栈
|
||||
5. [MongoDB 分片](notes/MongoDB_分片.md)
|
||||
|
||||
分片副本集配置、配置副本集配置、路由服务配置
|
||||
|
||||
<br/>
|
||||
|
||||
## :whale: 系统与容器
|
||||
|
||||
1. [Linux 常用 Shell 命令](notes/Linux_常用Shell命令.md)
|
||||
|
||||
2. [Sehll 脚本编程基础](notes/Shell_基础.md)
|
||||
|
||||
创建脚本、分支语句、循环语句、处理用户输入、处理用户输出、创建函数、处理信号、定时作业
|
||||
|
||||
3. [Docker 基础](notes/Docker_基础.md)
|
||||
|
||||
核心概念(镜像、容器、仓库)、Docker 常用命令、DockerFile 常用指令
|
||||
|
||||
<br/>
|
||||
|
||||
## :package: 常用技术栈
|
||||
|
||||
|
||||
### RabbitMQ
|
||||
|
||||
+ [RabbitMQ 核心概念](notes/RabbitMQ_基础.md)
|
||||
+ [RabbitMQ 客户端开发](notes/RabbitMQ_客户端开发.md)
|
||||
+ [HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](notes/RabbitMQ_高可用集群架构.md)
|
||||
1. [RabbitMQ 核心概念](notes/RabbitMQ_基础.md)
|
||||
|
||||
2. [RabbitMQ 客户端开发](notes/RabbitMQ_客户端开发.md)
|
||||
|
||||
3. [HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](notes/RabbitMQ_高可用集群架构.md)
|
||||
|
||||
### Nginx
|
||||
|
||||
+ [Nginx 基础之静态网站部署,负载均衡,动静分离](notes/Nginx_基础.md)
|
||||
1. [Nginx 基础之静态网站部署,负载均衡,动静分离](notes/Nginx_基础.md)
|
||||
2. HTTP 模块详解
|
||||
3. Nginx 性能优化
|
||||
|
||||
|
||||
### Kafka
|
||||
|
||||
+ [Kafka 简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka简介.md)
|
||||
+ [基于 Zookeeper 搭建 Kafka 高可用集群](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/基于Zookeeper搭建Kafka高可用集群.md)
|
||||
+ [Kafka 生产者详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka生产者详解.md)
|
||||
+ [Kafka 消费者详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka消费者详解.md)
|
||||
+ [深入理解 Kafka 副本机制](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka深入理解分区副本机制.md)
|
||||
1. [Kafka 简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka简介.md)
|
||||
2. [基于 Zookeeper 搭建 Kafka 高可用集群](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/基于Zookeeper搭建Kafka高可用集群.md)
|
||||
3. [Kafka 生产者详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka生产者详解.md)
|
||||
4. [Kafka 消费者详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka消费者详解.md)
|
||||
5. [深入理解 Kafka 副本机制](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Kafka深入理解分区副本机制.md)
|
||||
|
||||
|
||||
### ZooKeeper
|
||||
|
||||
+ [ZooKeeper 简介及核心概念](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper简介及核心概念.md)
|
||||
+ [ZooKeeper 单机环境和集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Zookeeper单机环境和集群环境搭建.md)
|
||||
+ [ZooKeeper 常用 Shell 命令](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper常用Shell命令.md)
|
||||
+ [ZooKeeper Java 客户端](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper_Java客户端Curator.md)
|
||||
+ [ZooKeeper ACL 权限控制](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper_ACL权限控制.md)
|
||||
1. [ZooKeeper 简介及核心概念](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper简介及核心概念.md)
|
||||
2. [ZooKeeper 单机环境和集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Zookeeper单机环境和集群环境搭建.md)
|
||||
3. [ZooKeeper 常用 Shell 命令](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper常用Shell命令.md)
|
||||
4. [ZooKeeper Java 客户端](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper_Java客户端Curator.md)
|
||||
5. [ZooKeeper ACL 权限控制](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Zookeeper_ACL权限控制.md)
|
||||
6. 使用 ZooKeeper 实现分布式锁
|
||||
|
||||
## ElasticSearch
|
||||
|
||||
## :hammer: 软件安装
|
||||
TODO
|
||||
|
||||
+ [Redis 单机环境安装](notes/installation/Redis单机环境搭建.md)
|
||||
+ [RabbitMQ 单机环境安装](notes/installation/RabbitMQ单机环境搭建.md)
|
||||
+ [Nginx 单机环境安装](notes/installation/Nginx编译方式安装.md)
|
||||
+ [MySQL 单机环境安装](notes/installation/MySQL单机环境搭建.md)
|
||||
+ [MongoDB 单机环境安装](notes/installation/MongoDB单机环境搭建.md)
|
||||
+ [ElasticSearch + Kibana 单机环境安装](notes/installation/ElasticSearch+Kibana单机环境搭建.md)
|
||||
<br/>
|
||||
|
||||
## :rocket: 测试与运维
|
||||
|
||||
1. 性能测试之 Jmeter
|
||||
2. 性能测试之 LoadRunner
|
||||
3. Jenkins 持续交付与自动化部署
|
||||
|
||||
<br/>
|
||||
|
||||
## :bullettrain_side: 微服务与分布式
|
||||
|
||||
1. 分布式锁的实现
|
||||
2. 分布式选举算法
|
||||
3. 分布式事务实现原理
|
||||
4. 分布式全局 ID 的生成
|
||||
5. CAP 理论和 BASE 理论
|
||||
|
||||
<br/>
|
||||
|
||||
## :hammer_and_wrench: 常用软件安装
|
||||
|
||||
1. [Redis 单机环境安装](notes/installation/Redis单机环境搭建.md)
|
||||
2. [RabbitMQ 单机环境安装](notes/installation/RabbitMQ单机环境搭建.md)
|
||||
3. [Nginx 单机环境安装](notes/installation/Nginx编译方式安装.md)
|
||||
4. [MySQL 单机环境安装](notes/installation/MySQL单机环境搭建.md)
|
||||
5. [MongoDB 单机环境安装](notes/installation/MongoDB单机环境搭建.md)
|
||||
6. [ElasticSearch + Kibana 单机环境安装](notes/installation/ElasticSearch+Kibana单机环境搭建.md)
|
||||
|
||||
<br>
|
||||
|
||||
|
@ -17,7 +17,7 @@ Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroup,namespace
|
||||
- **runc** :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
|
||||
- **containerd** :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
|
||||
|
||||
下图体现了 Docker 和传统虚拟化方式的不同之处:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,再在该系统上运行所需应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
|
||||
下图体现了 Docker 和传统虚拟化方式的差异:传统虚拟机技术是虚拟出一套硬件后,再在其上运行一个完整操作系统,之后可以在该系统上运行所需的应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器没有自己的内核,也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
|
||||
|
||||
<div align="center"> <img src="../pictures/docker与虚拟机.png"/> </div>
|
||||
|
||||
@ -101,7 +101,7 @@ run 是 docker 中最为核心的一个命令,用于新建并启动容器,
|
||||
+ **-i** :表示使用交互模式,始终保持输入流开放;
|
||||
+ **-t** :表示分配一个伪终端,通常和 `-i` 结合使用,表示使用伪终端与容器进行交互;
|
||||
+ **-d** :以后台方式运行容器;
|
||||
+ **--name** :指定容器启动容器的名字,如果不指定,则由 docker 随机分配;
|
||||
+ **--name** :指定启动容器的名字,如果不指定,则由 docker 随机分配;
|
||||
+ **-c** :用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关;
|
||||
+ **-m** :用于限制为容器中所有进程分配的内存总量,以 B、K、M、G 为单位;
|
||||
+ **-v** :挂载数据卷 volume,可以用多个 `-v` 参数同时挂载多个 volume。volume 的格式为:`[host-dir]:[container-dir]:[rw:ro]` ,`[rw:ro]` 用于指定数据卷的模式,`rw` 代表读写模式,`ro` 代表只读模式。
|
||||
|
@ -33,7 +33,7 @@
|
||||
| Undefined | “undefined” | 该数据类型已经废弃 |
|
||||
| ObjectId | “objectId” | 对象 id |
|
||||
| Boolean | “bool” | 布尔值 |
|
||||
| Date | “date” | 日志类型 |
|
||||
| Date | “date” | 日期类型 |
|
||||
| Null | “null” | 空 |
|
||||
| Regular Expression | “regex” | 正则表达式 |
|
||||
| DBPointer | “dbPointer” | 该数据类型已经废弃 |
|
||||
@ -348,4 +348,4 @@ db.user.deleteOne(
|
||||
|
||||
+ 官方文档:[MongoDB CRUD Operations](https://docs.mongodb.com/manual/crud/)
|
||||
|
||||
+ Kristina Chodorow . MongoDB权威指南(第2版). 人民邮件出版社 . 2014-01
|
||||
+ Kristina Chodorow . MongoDB权威指南(第2版). 人民邮件出版社 . 2014-01
|
||||
|
@ -221,7 +221,7 @@ InnoDB 存储引擎支持以下两种标准的行级锁:
|
||||
|
||||
基于多版本并发控制和一致性非锁定读,可以避免获取锁的等待,从而提高并发访问下的性能。
|
||||
|
||||
**2. 一致性锁定度**
|
||||
**2. 一致性锁定读**
|
||||
|
||||
一致性锁定读则允许用户按照自己的需求在进行 SELECT 操作时手动加锁,通常有以下两种方式:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user