更新目录

This commit is contained in:
heibaiying 2019-08-05 17:45:39 +08:00
parent df90b55918
commit 210d0b9dd8
3 changed files with 71 additions and 104 deletions

164
README.md
View File

@ -1,58 +1,42 @@
# :memo:全栈工程师笔记
| ☕️ | 💻 | 💾 | 📟 | :globe_with_meridians: | 🌳 | 🚀 | 📊 | :cd: | :books: |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| <a href="#coffee-java">Java</a> | <a href="#-前端">前端</a> | <a href="#-数据库">数据库</a> | <a href="#-操作系统">操作系统</a> | <a href="#-网络通信">网络通信</a> | <a href="#-Spring">Spring</a> | <a href="#-分布式">分布式</a> | <a href="#-算法和数据结构">算法和数据结构</a> | <a href="#cd-大数据">大数据</a> | <a href="#books-读书笔记">读书笔记</a> |
# :memo:全栈工程师笔记
# :coffee: Java
1. Java设计模式
2. Java数据结构
3. 深入理解Java虚拟机
4. 并发编程框架disruptor
5. Java网络编程
6. tomcat 调优
1. Java 基础
2. GOF 23 种设计模式 (Java 语言实现)
3. 深入理解 Java 虚拟机
4. 无锁并行计算框架 Disruptor
6. 网络编程原理
6. Netty 编程模式
## 💻 前端
TODO
1. JavaScript 三座大山 —— 原型与原型链,作用域与闭包,异步与单线程
2. ECMAScript 6.0 核心知识
## 💾 数据库
#### 1. Oracle
### 1. Oracle
#### 2. MySQL
### 2. MySQL
+ MySQL 索引机制
+ MySQL 主从复制及读写分离
+ MySQL+keepalived 高可用实践方案
+ MySQL 分库分表
+ 数据库中间件 Mycat
+ 数据库中间件 Mycat 之 读写分离
+ 数据库中间件 Mycat 之 分库分表
+ MySQL+KeepAlived 高可用实现方案
+ PXC 集群搭建
#### 3. Redis
### 3. Redis
+ redis 简介及基本数据结构
+ redis 管道模式详解
+ [Redis 基本数据类型和常用命令](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Redis_数据类型和常用命令.md)
+ [Redis AOF 和 RDB 持久化策略原理](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Redis_持久化.md)
+ [Redis 哨兵模式](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Redis_哨兵模式.md)
+ [Reids 集群模式](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Redis_集群模式.md)
+ 缓存击穿、缓存雪崩的解决方案
+ redis 管理客户端 cachecloud
#### 4.MongoDB
### 4.MongoDB
+ [MongoDB 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MongoDB_基础.md)
+ [MongoDB 索引](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MongoDB_索引.md)
@ -60,31 +44,20 @@ TODO
+ [MongoDB 复制](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MongoDB_复制.md)
+ [MongoDB 分片](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MongoDB_分片.md)
## 📟 操作系统
[Linux 常用 Shell 命令](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Linux常用Shell命令.md)
## 🌐 网络通信
1. IO 基本概念、NIO、AIO、BIO 深入分析
2. 高性能NIO框架Netty
+ [Linux 常用 Shell 命令](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Linux常用Shell命令.md)
## 🌳 Spring
#### 1.spring 基础
### 1.spring 基础
+ AOP
+ IOC
+ Spring事务机制、事务的传播与监控
+ ......
#### 2.spring Boot
### 2.spring Boot
+ spring 自动装配原理
+ 理解 SpringApplication
@ -92,72 +65,73 @@ TODO
+ WebFlux 核心
+ ......
## 🚀 分布式框架
## 🚀 分布式
#### 1. Zookeeper
+ Zookeeper 简介及原理介绍
+ Zookeeper 集群搭建
+ Zookeeper 分布式锁实现方案
+ Zookeeper 集群升级、迁移
+ 深入分析 Zookeeper Zab协议及选举机制
#### 2. Dubbo
### 1. Dubbo
+ Dubbo 管理中心及监控平台安装部署
+ Dubbo 负载均衡和服务降级
#### 3. Spring Cloud
### 2. Spring Cloud
- Eureka 服务的注册和发现
- Eureka 高可用集群搭建
- Ribbon 客户端负载均衡 RestTemplate 服务远程调用
- OpenFeign 声明式服务调用、服务容错处理
- Hystix 服务容错保护、hystrix dashboard 断路器监控、Turbine 断路器聚合监控
- Hystix 服务容错保护、Hystrix Dashboard 断路器监控、Turbine 断路器聚合监控
- Zuul 网关服务
- Sleuth + Zipkin 服务链路追踪
- Config 分布式配置中心 、集成Bus消息总线实现配置热更新
- Config 分布式配置中心 、集成 Bus 消息总线实现配置热更新
#### 4. 消息中间件Kafka
### 3.分布式解决方案
+ Kafka 简介及消息处理过程分析
+ 基于Zookeeper搭建Kafka高可用集群
+ Kafka 副本机制以及选举原理剖析
#### 5. 消息中间件RabbitMQ
+ RabbitMQ 简介及消息处理过程分析
+ RabbitMQ 消息确认机制
+ RabbitMQ 如何保证消息的可靠性投递和防止重复消费
#### 6. Nginx
+ Nginx反向代理及负载均衡服务配置实战
+ 利用keeplived+Nginx实现Nginx高可用方案
+ Nginx动静分离实战
#### 7. Docker
+ Docker 基础
+ kubernetes 简介及集群搭建
#### 8.分布式解决方案
+ 全局id生成方案
+ 分布式session解决方案
+ 全局 id 生成方案
+ 分布式 session 解决方案
+ 分布式事务解决方案实战
+ 分布式锁解决方案
## 中间件
## 📊 算法和数据结构
### 1. 消息中间件Kafka
#### 1. 数据结构
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)
### 2. 消息中间件RabbitMQ
- [RabbitMQ 基础](https://github.com/heibaiying/BigData-Notes/blob/master/notes/RabbitMQ_基础.md)
- [RabbitMQ 客户端开发](https://github.com/heibaiying/BigData-Notes/blob/master/notes/RabbitMQ_客客户端开发.md)
- [基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](https://github.com/heibaiying/BigData-Notes/blob/master/notes/RabbitMQ_高可用集群架构.md)
### 3.负载均衡中间件 Nginx
- Nginx 反向代理及负载均衡服务配置实战
- 利用 keeplived+Nginx 实现 Nginx 高可用方案
- Nginx 动静分离实战
### 4.分布式协调服务 Zookeeper
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 客户端 —— Apache Curator](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)
## Docker
- Docker 基础
- kubernetes 简介及集群搭建
## 📊 数据结构
数组、栈、队列、链表、二分搜索树、集合、映射、优先队列、堆、线段树、Trie、并查集、AVL、红黑树、哈希表
#### 2. 算法
## 算法基础

View File

@ -1,4 +1,4 @@
# RabbitMQ 集群模式搭建
# 基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群
<nav>
<a href="#一集群简介">一、集群简介</a><br/>
@ -36,7 +36,6 @@
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-集群架构.png"/> </div>
这里对上面的集群架构做一下解释说明:
首先一个基本的 RabbitMQ 集群不是高可用的,虽然集群共享队列,但在默认情况下,消息只会被路由到某一个节点的符合条件的队列上,并不会同步到其他节点的相同队列上。假设消息路由到 node1 的 my-queue 队列上,但是 node1 突然宕机了,那么消息就会丢失,想要解决这个问题,需要开启队列镜像,将集群中的队列彼此之间进行镜像,此时消息就会被拷贝到处于同一个镜像分组中的所有队列上。
@ -144,7 +143,6 @@ rabbitmqctl set_cluster_name my_rabbitmq_cluster
除了可以使用命令行外,还可以使用打开任意节点的 UI 界面进行查看,情况如下:
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-集群模式.png"/> </div>
### 2.5 配置镜像队列
#### 1. 开启镜像队列
@ -178,7 +176,6 @@ rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-镜像复制策略.png"/> </div>
### 2.6 节点下线
以上介绍的集群搭建的过程就是服务扩容的过程,如果想要进行服务缩容,即想要把某个节点剔除集群,有两种可选方式:
@ -327,7 +324,6 @@ haproxy -f /etc/haproxy/haproxy.cfg
启动后可以在监控页面进行查看,端口为设置的 8100完整地址为http://hadoop001:8100/stats页面情况如下
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-haproxy.png"/> </div>
所有节点都为绿色,代表节点健康。此时证明 HAProxy 搭建成功,并已经对 RabbitMQ 集群进行监控。
@ -509,11 +505,9 @@ systemctl start keepalived
启动后此时 hadoop001 为主节点,可以在 hadoop001 上使用 `ip a` 命令查看到虚拟 IP 的情况:
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-keepalived-vip.png"/> </div>
此时只有 hadoop001 上是存在虚拟 IP 的,而 hadoop002 上是没有的。
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-keepalived-vip2.png"/> </div>
### 4.6 验证故障转移
这里我们验证一下故障转移,因为按照我们上面的检测脚本,如果 HAProxy 已经停止且无法重启时 KeepAlived 服务就会停止,这里我们直接使用以下命令停止 Keepalived 服务:
@ -527,7 +521,6 @@ systemctl stop keepalived
<div align="center"> <img src="https://github.com/heibaiying/Full-Stack-Notes/blob/master/pictures/rabbitmq-keepalived-vip3.png"/> </div>
此时对外服务的 VIP 依然可用,代表已经成功地进行了故障转移。至此集群已经搭建成功,任何需要发送或者接受消息的客户端服务只需要连接到该 VIP 即可,示例如下:
```shell

View File

@ -1,4 +1,4 @@
# Redis 基
# Redis 基本数据类型和常用命令
## 一、数据类型