From 95da67748c0aed721c051a46903ea00f9d9b82d0 Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 10:51:08 +0800
Subject: [PATCH 01/11] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index fb999f5..09e6bf3 100644
--- a/README.md
+++ b/README.md
@@ -105,9 +105,9 @@
### 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)
+- [RabbitMQ 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_基础.md)
+- [RabbitMQ 客户端开发](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_客客户端开发.md)
+- [基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_高可用集群架构.md)
### 3.负载均衡中间件 Nginx
From 12b5a8690e29a2ea7844e6f52a7475a94d68d35e Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 10:52:36 +0800
Subject: [PATCH 02/11] =?UTF-8?q?Update=20RabbitMQ=5F=E9=AB=98=E5=8F=AF?=
=?UTF-8?q?=E7=94=A8=E9=9B=86=E7=BE=A4=E6=9E=B6=E6=9E=84.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/RabbitMQ_高可用集群架构.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/notes/RabbitMQ_高可用集群架构.md b/notes/RabbitMQ_高可用集群架构.md
index 6cb4e54..b1e83b2 100644
--- a/notes/RabbitMQ_高可用集群架构.md
+++ b/notes/RabbitMQ_高可用集群架构.md
@@ -143,6 +143,7 @@ rabbitmqctl set_cluster_name my_rabbitmq_cluster
除了可以使用命令行外,还可以使用打开任意节点的 UI 界面进行查看,情况如下:
+
### 2.5 配置镜像队列
#### 1. 开启镜像队列
@@ -508,6 +509,7 @@ systemctl start keepalived
此时只有 hadoop001 上是存在虚拟 IP 的,而 hadoop002 上是没有的。
+
### 4.6 验证故障转移
这里我们验证一下故障转移,因为按照我们上面的检测脚本,如果 HAProxy 已经停止且无法重启时 KeepAlived 服务就会停止,这里我们直接使用以下命令停止 Keepalived 服务:
From 28142334b9ebc0db838f2bc16396b4532997e79a Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 10:54:23 +0800
Subject: [PATCH 03/11] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 09e6bf3..4518821 100644
--- a/README.md
+++ b/README.md
@@ -106,7 +106,7 @@
### 2. 消息中间件:RabbitMQ
- [RabbitMQ 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_基础.md)
-- [RabbitMQ 客户端开发](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_客客户端开发.md)
+- [RabbitMQ 客户端开发](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_客户端开发.md)
- [基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_高可用集群架构.md)
### 3.负载均衡中间件 Nginx
From e3f196fb66876f9d4bda6578b0f7b1c3a3f16cf0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Mon, 26 Aug 2019 10:57:26 +0800
Subject: [PATCH 04/11] =?UTF-8?q?docker=E5=9F=BA=E7=A1=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/Docker_基础.md | 56 ++++++++++++++++++++----------------------
1 file changed, 26 insertions(+), 30 deletions(-)
diff --git a/notes/Docker_基础.md b/notes/Docker_基础.md
index df529d1..6a3d8bb 100644
--- a/notes/Docker_基础.md
+++ b/notes/Docker_基础.md
@@ -14,19 +14,17 @@ Docker 是一个构建,发布和运行应用程序的开放平台。Docker 以
Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
-- runc :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
-- containerd :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
+- **runc** :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
+- **containerd** :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
下图体现了 Docker 和传统虚拟化方式的不同之处:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,再在该系统上运行所需应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
-
## 二、Docker 架构与核心概念
Docker 使用 client-server 架构, Docker 客户端将命令发送给 Docker 守护进程,后者负责构建,运行和分发 Docker 容器。 Docker客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。核心概念如下:
-
### 2.1 镜像
Docker 镜像(Image)是一个特殊的文件系统,包含了程序运行时候所需要的资源和环境。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
@@ -62,7 +60,6 @@ Docker 客户端(docker)是用户与 Docker 交互的主要方式。当你
Docker 提供了大量命令用于管理镜像、容器和服务,命令的统一使用格式为:` docker [OPTIONS] COMMAND` ,其中 OPTIONS 代表可选参数。需要注意的是 Docker 命令的执行一般都需要获取 root 权限,这是因为 Docker 的命令行工具 docker 与 docker daemon 是同一个二进制文件,docker daemon 负责接收并执行来自 docker 的命令,它的运行需要 root 权限。所有常用命令及其使用场景如下:
-
### 3.1 基础命令
- **docker version**:用于查看 docker 的版本信息
@@ -79,10 +76,10 @@ Docker 提供了大量命令用于管理镜像、容器和服务,命令的统
列出所有顶层镜像的相关信息。常用参数如下:
-- -a :显示所有镜像,包括中间隐藏的镜像
-- -q :只显示镜像 ID
-- --digests :显示摘要信息
-- --no-trunc :显示完整镜像信息
+- **-a** :显示所有镜像,包括中间隐藏的镜像
+- **-q** :只显示镜像 ID
+- **--digests** :显示摘要信息
+- **--no-trunc** :显示完整镜像信息
#### 3. docker pull 镜像名 [:TAG]
@@ -98,23 +95,23 @@ Docker 提供了大量命令用于管理镜像、容器和服务,命令的统
run 是 docker 中最为核心的一个命令,用于新建并启动容器,其拥有众多可用参数,可以使用`docker run --help`查看所有可用参数。常用参数如下:
-+ -i :表示使用交互模式,始终保持输入流开放;
-+ -t :表示分配一个伪终端,通常和`-i`结合使用,表示使用伪终端与容器进行交互;
-+ -d :以后台方式运行容器;
-+ --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`代表只读模式。
-+ -p :用于将容器的端口暴露给宿主机的端口,格式为:`hostPort:containerPort`,通过端口的暴露,可以让外部主机能够访问容器内的应用。
++ **-i** :表示使用交互模式,始终保持输入流开放;
++ **-t** :表示分配一个伪终端,通常和`-i`结合使用,表示使用伪终端与容器进行交互;
++ **-d** :以后台方式运行容器;
++ **--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`代表只读模式。
++ **-p** :用于将容器的端口暴露给宿主机的端口,格式为:`hostPort:containerPort`,通过端口的暴露,可以让外部主机能够访问容器内的应用。
#### 2. docker ps [OPTIONS]
列出当前所有正在运行的容器。常用参数如下:
-- -a :列出所有容器,包括运行的和已经停止的所有容器
-- -n :显示最近创建的 n 个容器
-- -q :只显示容器编号
-- --no-trunc :不要截断输出信息
+- **-a** :列出所有容器,包括运行的和已经停止的所有容器
+- **-n** :显示最近创建的 n 个容器
+- **-q** :只显示容器编号
+- **--no-trunc** :不要截断输出信息
#### 3. 启动\重启\停止\强制停止容器
@@ -131,8 +128,8 @@ run 是 docker 中最为核心的一个命令,用于新建并启动容器,
想要退出正在运行的容器,有以下两种常用方法:
-+ exit :退出并停止容器;
-+ ctrl+P+Q :退出。
++ **exit** :退出并停止容器;
++ **ctrl+P+Q** :退出。
#### 6. docker rm 容器名或ID
@@ -150,12 +147,12 @@ docker inspect --format='{{.NetworkSettings}}' 32cb3ace3279
可以使用`docker logs [OPTIONS] CONTAINER`查看容器中进程的运行日志,常用参数如下:
-- --details :显示日志详情
-- -f :跟随日志输出显示
-- --tail :从末尾开始显示指定行的数据
-- -t :显示时间戳
-- --since :开始时间
-- --until : 结束时间
+- **--details** :显示日志详情
+- **-f** :跟随日志输出显示
+- **--tail** :从末尾开始显示指定行的数据
+- **-t** :显示时间戳
+- **--since** :开始时间
+- **--until** : 结束时间
## 四、DockerFile
@@ -278,7 +275,6 @@ docker run -it -p 8080:8080 spring-boot-base-java
这里为了观察到启动效果,所以使用交互的方式启动,实际部署时可以使用`-d`参数来后台启动,输出如下:
-
### 5.2 基于 JDK 镜像部署 Spring Boot 项目
上面的项目我们是基于最基础的 Centos 镜像开始构建,但由于 Docker Hub 上已经提供了 JDK 的镜像,我们也可以选择从 JDK 镜像开始构建,此时构建过程更加简单。构建步骤和上面的完全一致,只是 Dockerfile 的内容有所不同,如下:
From ca4b822d7134d6ab8f9368ba4812c211866cd5bb Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 10:58:26 +0800
Subject: [PATCH 05/11] =?UTF-8?q?Update=20Docker=5F=E5=9F=BA=E7=A1=80.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/Docker_基础.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/notes/Docker_基础.md b/notes/Docker_基础.md
index 6a3d8bb..34ddfaa 100644
--- a/notes/Docker_基础.md
+++ b/notes/Docker_基础.md
@@ -20,11 +20,13 @@ Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroup,namespace
下图体现了 Docker 和传统虚拟化方式的不同之处:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,再在该系统上运行所需应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
+
## 二、Docker 架构与核心概念
Docker 使用 client-server 架构, Docker 客户端将命令发送给 Docker 守护进程,后者负责构建,运行和分发 Docker 容器。 Docker客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。核心概念如下:
+
### 2.1 镜像
Docker 镜像(Image)是一个特殊的文件系统,包含了程序运行时候所需要的资源和环境。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
@@ -60,6 +62,7 @@ Docker 客户端(docker)是用户与 Docker 交互的主要方式。当你
Docker 提供了大量命令用于管理镜像、容器和服务,命令的统一使用格式为:` docker [OPTIONS] COMMAND` ,其中 OPTIONS 代表可选参数。需要注意的是 Docker 命令的执行一般都需要获取 root 权限,这是因为 Docker 的命令行工具 docker 与 docker daemon 是同一个二进制文件,docker daemon 负责接收并执行来自 docker 的命令,它的运行需要 root 权限。所有常用命令及其使用场景如下:
+
### 3.1 基础命令
- **docker version**:用于查看 docker 的版本信息
@@ -275,6 +278,7 @@ docker run -it -p 8080:8080 spring-boot-base-java
这里为了观察到启动效果,所以使用交互的方式启动,实际部署时可以使用`-d`参数来后台启动,输出如下:
+
### 5.2 基于 JDK 镜像部署 Spring Boot 项目
上面的项目我们是基于最基础的 Centos 镜像开始构建,但由于 Docker Hub 上已经提供了 JDK 的镜像,我们也可以选择从 JDK 镜像开始构建,此时构建过程更加简单。构建步骤和上面的完全一致,只是 Dockerfile 的内容有所不同,如下:
From dd9b729f84cd78a036182f248466607fec187176 Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 11:09:03 +0800
Subject: [PATCH 06/11] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 4518821..ce7ef1c 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
### 2. MySQL
-+ [MySQL 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_基础.md)
++ [MySQL 核心概念](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_基础.md)
+ [MySQL 常用备份方式](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_备份.md)
+ [MySQL 二进制日志复制、GTID 复制与半同步复制](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_复制.md)
+ [MySQL 高可用架构之 PXC 集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_PXC集群.md)
@@ -105,7 +105,7 @@
### 2. 消息中间件:RabbitMQ
-- [RabbitMQ 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_基础.md)
+- [RabbitMQ 核心概念](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_基础.md)
- [RabbitMQ 客户端开发](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_客户端开发.md)
- [基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_高可用集群架构.md)
From bf3f64635f9294a050974ee87a80c19d5d943b66 Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 11:09:48 +0800
Subject: [PATCH 07/11] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ce7ef1c..eb6f0ef 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
### 2. MySQL
+ [MySQL 核心概念](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_基础.md)
-+ [MySQL 常用备份方式](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_备份.md)
++ [MySQL 备份详解](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_备份.md)
+ [MySQL 二进制日志复制、GTID 复制与半同步复制](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_复制.md)
+ [MySQL 高可用架构之 PXC 集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_PXC集群.md)
+ [MyCat 分库分表](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_分库分表.md)
From 0d777c044f56c7f9fc0c9c3ba50c9b40ad23fe6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Mon, 26 Aug 2019 16:43:05 +0800
Subject: [PATCH 08/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 114 +++++++++++++++++++++++-------------------------------
1 file changed, 49 insertions(+), 65 deletions(-)
diff --git a/README.md b/README.md
index eb6f0ef..1a5d14d 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,24 @@
-# :memo:全栈工程师笔记
+# :coffee: JAVA
-# :coffee: Java
+- Java 基础
+- GOF 23 种设计模式 ( Java 语言实现 )
+- 深入理解 Java 虚拟机
+- 无锁并行计算框架 Disruptor
+- 网络编程原理
+- Netty 编程模式
-1. Java 基础
-2. GOF 23 种设计模式 (Java 语言实现)
-3. 深入理解 Java 虚拟机
-4. 无锁并行计算框架 Disruptor
-6. 网络编程原理
-6. Netty 编程模式
-## 💻 前端
-1. JavaScript 三座大山 —— 原型与原型链,作用域与闭包,异步与单线程
-2. ECMAScript 6.0 核心知识
+## 💻 前端基础
+
+- JavaScript 核心概念 —— 原型与原型链,作用域与闭包,异步与单线程
+- ECMAScript 6.0 基础
+
+
## 💾 数据库
-### 1. Oracle
-
-
-
-### 2. MySQL
+### MySQL
+ [MySQL 核心概念](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_基础.md)
+ [MySQL 备份详解](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_备份.md)
@@ -29,14 +27,14 @@
+ [MyCat 分库分表](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_分库分表.md)
+ [MySQL 查询性能分析之 Explain](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/MySQL_EXPLAIN.md)
-### 3. 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)
-### 4.MongoDB
+### 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)
@@ -44,58 +42,48 @@
+ [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)
+- [Docker 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Docker_基础.md)
+- Kubernetes 简介及集群搭建
-## 🌳 Spring
-### 1.spring 基础
+## 🌳 Spring 系列
+
+### Spring
+ AOP
+ IOC
+ Spring事务机制、事务的传播与监控
-+ ......
-### 2.spring Boot
-
-+ spring 自动装配原理
-+ 理解 SpringApplication
-+ Web MVC REST
-+ WebFlux 核心
-+ ......
-
-## 🚀 分布式框架
-
-### 1. Dubbo
-
-+ Dubbo 管理中心及监控平台安装部署
-+ Dubbo 负载均衡和服务降级
-
-### 2. Spring Cloud
+### Spring Cloud
- Eureka 服务的注册和发现
- Eureka 高可用集群搭建
-- Ribbon 客户端负载均衡 RestTemplate 服务远程调用
-- OpenFeign 声明式服务调用、服务容错处理
-- Hystix 服务容错保护、Hystrix Dashboard 断路器监控、Turbine 断路器聚合监控
+- Ribbon 客户端负载均衡,RestTemplate 服务远程调用
+- OpenFeign 声明式服务调用,服务容错处理
+- Hystix 服务容错保护,Hystrix Dashboard 断路器监控,Turbine 断路器聚合监控
- Zuul 网关服务
- Sleuth + Zipkin 服务链路追踪
-- Config 分布式配置中心 、集成 Bus 消息总线实现配置热更新
+- Config 分布式配置中心 ,集成 Bus 消息总线实现配置热更新
-### 3.分布式解决方案
+### 分布式解决方案
-+ 全局 id 生成方案
-+ 分布式 session 解决方案
++ 全局 ID 生成方案
++ 分布式 Session 解决方案
+ 分布式事务解决方案实战
+ 分布式锁解决方案
-## 中间件
-### 1. 消息中间件:Kafka
+## 常用技术栈
+
+### Kafka
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)
@@ -103,37 +91,33 @@
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
- [RabbitMQ 核心概念](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_基础.md)
- [RabbitMQ 客户端开发](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_客户端开发.md)
- [基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/RabbitMQ_高可用集群架构.md)
-### 3.负载均衡中间件 Nginx
+### 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)
+
+### Nginx
- Nginx 反向代理及负载均衡服务配置实战
- 利用 keeplived+Nginx 实现 Nginx 高可用方案
- Nginx 动静分离实战
-### 4.分布式协调服务 Zookeeper
+### Dubbo
-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 基础](https://github.com/heibaiying/Full-Stack-Notes/blob/master/notes/Docker_基础.md)
-- kubernetes 简介及集群搭建
+- Dubbo 管理中心及监控平台安装部署
+- Dubbo 负载均衡和服务降级
-## 📊 数据结构
+## 📊 算法
-数组、栈、队列、链表、二分搜索树、集合、映射、优先队列、堆、线段树、Trie、并查集、AVL、红黑树、哈希表
-
-
-
-## 算法基础
+TODO
\ No newline at end of file
From e0657314c385cf23762f278826a943eedcd7f2ed Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Mon, 26 Aug 2019 17:23:12 +0800
Subject: [PATCH 09/11] Update README.md
---
README.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 1a5d14d..c0da8c8 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@
- Java 基础
- GOF 23 种设计模式 ( Java 语言实现 )
- 深入理解 Java 虚拟机
-- 无锁并行计算框架 Disruptor
- 网络编程原理
- Netty 编程模式
@@ -120,4 +119,4 @@
## 📊 算法
-TODO
\ No newline at end of file
+TODO
From 60bd3a61178120e602ee3261dc7b7365aaf5524c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Tue, 27 Aug 2019 17:52:28 +0800
Subject: [PATCH 10/11] =?UTF-8?q?nginx=E7=BC=96=E8=AF=91=E6=96=B9=E5=BC=8F?=
=?UTF-8?q?=E5=AE=89=E8=A3=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/installation/Nginx编译方式安装.md | 84 +++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 notes/installation/Nginx编译方式安装.md
diff --git a/notes/installation/Nginx编译方式安装.md b/notes/installation/Nginx编译方式安装.md
new file mode 100644
index 0000000..b1033ff
--- /dev/null
+++ b/notes/installation/Nginx编译方式安装.md
@@ -0,0 +1,84 @@
+# Nginx 编译方式安装
+
+## 一、安装依赖
+
++ **PCRE**:安装 PCRE 库来支持正则表达式,它主要被 NGINX Core 和 Rewrite 模块所需要:
+
+```shell
+# PCRE库的编译需要该组件,所以需要预先安装
+$ yum -y install gcc-c++
+
+$ wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
+$ tar -zxf pcre-8.42.tar.gz
+$ cd pcre-8.42
+$ ./configure
+$ make
+$ sudo make install
+```
+
++ **zlib** :安装 zlib 库来支持 header 头压缩,它主要被 NGINX Gzip 模块所依赖:
+
+```shell
+$ wget http://zlib.net/zlib-1.2.11.tar.gz
+$ tar -zxf zlib-1.2.11.tar.gz
+$ cd zlib-1.2.11
+$ ./configure
+$ make
+$ sudo make install
+```
+
++ **OpenSSL**:安装 OpenSSL 库来支持 HTTPS 协议,它主要被 NGINX SSL 模块和其他模块所依赖:
+
+```shell
+yum install openssl openssl-devel
+```
+
+## 二、安装 Nginx
+
+### 2.1 下载并解压
+
+下载所需版本的 Nginx 并进行解压,Nginx 版本号的规则为:`主版本号.次版本号.修订号`,其中稳定版的次版本号为偶数,测试版的次版本号为奇数,生产环境下应尽量下载稳定版:
+
+```shell
+$ wget https://nginx.org/download/nginx-1.16.1.tar.gz
+$ tar -zxvf nginx-1.16.1.tar.gz
+```
+
+### 2.2 编译安装
+
+按需编译 Nginx,可以使用 `--with` 来包含非默认安装的模块,或使用 `--without` 来排除默认安装的模块。关于全部模块的信息,可以使用 ` ./configure --help` 命令进行查看或查阅官方文档:https://nginx.org/en/docs/configure.html :
+
+```shell
+$ cd nginx-1.16.1
+
+$ ./configure \
+--prefix=/usr/app/nginx-1.16.1 \
+--with-pcre=/usr/app/pcre-8.42 \
+--with-zlib=/usr/app/zlib-1.2.11 \
+--with-http_ssl_module \ # 启用HTTPS支持
+--with-stream \ # 启用TCP和UDP代理功能
+--with-mail=dynamic # 启用邮件代理功能
+
+$ make
+$ sudo make install
+```
+
+### 2.3 配置环境变量
+
+```shell
+$ vim /etc/profile
+```
+
+增加如下配置:
+
+```shell
+export NGINX_HOME=/usr/app/nginx-1.16.1
+export PATH=${NGINX_HOME}/sbin:$PATH
+```
+
+使得配置的环境变量立即生效:
+
+```shell
+$ source /etc/profile
+```
+
From 1fc17a1377de705b1719476661c74a78eb921f72 Mon Sep 17 00:00:00 2001
From: heibaiying <31504331+heibaiying@users.noreply.github.com>
Date: Sat, 31 Aug 2019 10:55:45 +0800
Subject: [PATCH 11/11] =?UTF-8?q?Update=20Nginx=E7=BC=96=E8=AF=91=E6=96=B9?=
=?UTF-8?q?=E5=BC=8F=E5=AE=89=E8=A3=85.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/installation/Nginx编译方式安装.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/notes/installation/Nginx编译方式安装.md b/notes/installation/Nginx编译方式安装.md
index b1033ff..1990df6 100644
--- a/notes/installation/Nginx编译方式安装.md
+++ b/notes/installation/Nginx编译方式安装.md
@@ -56,7 +56,7 @@ $ ./configure \
--with-pcre=/usr/app/pcre-8.42 \
--with-zlib=/usr/app/zlib-1.2.11 \
--with-http_ssl_module \ # 启用HTTPS支持
---with-stream \ # 启用TCP和UDP代理功能
+--with-stream \ # 启用TCP和UDP代理功能
--with-mail=dynamic # 启用邮件代理功能
$ make