更新目录
This commit is contained in:
parent
df90b55918
commit
210d0b9dd8
164
README.md
164
README.md
@ -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. 算法
|
||||
|
||||
|
||||
## 算法基础
|
@ -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
|
@ -1,4 +1,4 @@
|
||||
# Redis 基础
|
||||
# Redis 基本数据类型和常用命令
|
||||
|
||||
## 一、数据类型
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user