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