概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
三、Docker 一鍵編排MySql集群實戰
集群方案介紹:
部署方案:
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
三、Docker 一鍵編排MySql集群實戰
集群方案介紹:
部署方案:
架構方案
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
三、Docker 一鍵編排MySql集群實戰
集群方案介紹:
部署方案:
架構方案
編排腳本:docker-compose.yml
version: "3.3"
services:
mysql-master:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- "3333:3306"
volumes:
- "/root/svr/mysql-cluster/master/my.cnf:/etc/mysql/conf.d/my.cnf"
mysql-slave1:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave1/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave1/:/docker-entrypoint-initdb.d/"
depends_on:
- mysql-master
links:
- mysql-master
mysql-slave2:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave2/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave2/:/docker-entrypoint-initdb.d/"
links:
- mysql-master
depends_on:
- mysql-master
master 配置文件
[mysqld]
binlog-do-db=tuling
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
log-bin=mysql-master-bin
server-id=99
slave1 配置文件 my.cnf
[mysqld]
server-id =1
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information
_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave2配置文件 my.cnf
[mysqld]
server-id =2
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave 初始腳本
change master to master_host='mysql-master', master_user='root', master_password='123456' ;
start slave;
看完視頻的學習筆記就是這些了,需要這個視頻可以私信我【魯班】免費領取,還有更多精彩的學習視頻和整理的學習筆記!
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
三、Docker 一鍵編排MySql集群實戰
集群方案介紹:
部署方案:
架構方案
編排腳本:docker-compose.yml
version: "3.3"
services:
mysql-master:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- "3333:3306"
volumes:
- "/root/svr/mysql-cluster/master/my.cnf:/etc/mysql/conf.d/my.cnf"
mysql-slave1:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave1/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave1/:/docker-entrypoint-initdb.d/"
depends_on:
- mysql-master
links:
- mysql-master
mysql-slave2:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave2/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave2/:/docker-entrypoint-initdb.d/"
links:
- mysql-master
depends_on:
- mysql-master
master 配置文件
[mysqld]
binlog-do-db=tuling
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
log-bin=mysql-master-bin
server-id=99
slave1 配置文件 my.cnf
[mysqld]
server-id =1
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information
_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave2配置文件 my.cnf
[mysqld]
server-id =2
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave 初始腳本
change master to master_host='mysql-master', master_user='root', master_password='123456' ;
start slave;
看完視頻的學習筆記就是這些了,需要這個視頻可以私信我【魯班】免費領取,還有更多精彩的學習視頻和整理的學習筆記!
領取的朋友們記得一定要幫作者來個轉發+評論!謝謝大家!
概要:
1. Docker compose 概念與基本命令
2. MySql主從架構原理
3. Docker 一鍵編排MySql集群實戰
講師介紹:
花名:魯班
曾就職於萬達、 雲猴Java高級架構師、近十年開發管理經驗,擅長互聯網項目實戰。負責整體架構、會員體系建設、大促技術保障。目前正在研究用以提升產品研發效率與質量的工具。崇向工匠精神,追求精益求精的做事理念
視頻內容:
1、20分鐘弄懂MySql主從架構原理
2、一起來學90%企業生產環境的讀寫分離架構
3、基於Docker 編排十分鐘搞定Mysql集群
4、進大廠必備學習路線圖指引
視頻可以私信我:“魯班”免費獲取
一、Docker compose 概念與基本命令
compose 使用
一個項目的完整環境包括 應用節點(app)、數據庫(mySql)、緩存(Redis)。為了管理方便,是否可以將這些節點全部構建在一個容器中運行?答案是可以的,但並不推薦這麼做,因為它違背了Docker中運行環境隔離的設計初衷。(每個節點都有其運行環境,如果合在一起,自然它們的環境也要搓合在一起)。
那麼怎麼簡化多節點項目環境的維護呢?Docker-compose 就可以解決該問題。通過DockerCompose.yml 描述項目中各節點容器信息,及依賴信息。然後通過docer-compose 一鍵構建或啟動。
docker-compose .yml 示例文件:
version: "3.3"
services:
nginx:
image: nginx
ports:
- "80:80"
links:
- app
volumes:
- "./nginx.conf.d/:/etc/nginx/conf.d/"
app:
image: luban/app
在上述文件中 編排了一個 Nginx 和app 節點,並通過Nginx 反向代理app服務。 現在是不是就可以一鍵運行了呢,別急還得先安裝docker-compose 程序,以下兩個步驟命令即可完成
安裝 compose
1. 下載
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
檢測安裝情況
docker-compose -v
執行構建
#基於編排文件構建並啟動容器
docker-compose up
注:在執行命令時必須 在docker-compose.yml 當前目錄,否則會報找不到文件。此外文件名必須寫死docker-compose.yml,不能用其它文件名。
Nginx 示例配置文件 luban.conf:
server {
listen 80;
server_name www.luban.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app:8080/;
}
}
二、MySql主從架構原理
1、 主從架構業務背景
讀寫分離實現方式
1. 基於程序實現
2. 基於mysql自帶主從同步機制
2、mySql主從架構的原理
節點說明:
binlog:
記錄master 節點的增刪改 語句
relaybinlog:
記錄從master 中複製過來的sql 語句
I/O Thread:
用於與master 節點通信,傳輸SQ語句信息
SQL Thread:
用於從relaybinlog 文件中讀取sql 並在slave中執行
相關命令:
#查看所有binlog
mysql> show binary logs;
#查看所有binlog 事件
mysql> show binlog events in 'mysql-bin.000003' from 145 \\G;
#使用binlog恢復誤刪數據
mysqlbinlog /data/mysql/mysql-master-bin.000002 --database=tuling --start-datetime='2018-01-05 01:00:00' --stop-datetime='2018-01-05 23:59:59' >/home/s1.sql
#查看 relaylog 事件
mysql >show relaylog events
mysql> show relaylog events in 'localhost-relay-bin.000019'
3、主從同步的其它作用
1. 實時災備
2. 用於故障切換
3. 讀寫分離負載均衡
4. 業務隔離
4、主從同步可能引發的問題及解決辦法
1. 數據一至性問題 :
2. 從庫更新延遲問題:
5、mySql 可選的主從架構方案
三、Docker 一鍵編排MySql集群實戰
集群方案介紹:
部署方案:
架構方案
編排腳本:docker-compose.yml
version: "3.3"
services:
mysql-master:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- "3333:3306"
volumes:
- "/root/svr/mysql-cluster/master/my.cnf:/etc/mysql/conf.d/my.cnf"
mysql-slave1:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave1/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave1/:/docker-entrypoint-initdb.d/"
depends_on:
- mysql-master
links:
- mysql-master
mysql-slave2:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- "/root/svr/mysql-cluster/slave2/my.cnf:/etc/mysql/conf.d/my.cnf"
- "/root/svr/mysql-cluster/slave2/:/docker-entrypoint-initdb.d/"
links:
- mysql-master
depends_on:
- mysql-master
master 配置文件
[mysqld]
binlog-do-db=tuling
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
log-bin=mysql-master-bin
server-id=99
slave1 配置文件 my.cnf
[mysqld]
server-id =1
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information
_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave2配置文件 my.cnf
[mysqld]
server-id =2
log-bin=mysql-bin
replicate-do-db=tuling
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=personalsite
replicate-ignore-db=test
slave 初始腳本
change master to master_host='mysql-master', master_user='root', master_password='123456' ;
start slave;
看完視頻的學習筆記就是這些了,需要這個視頻可以私信我【魯班】免費領取,還有更多精彩的學習視頻和整理的學習筆記!
領取的朋友們記得一定要幫作者來個轉發+評論!謝謝大家!
2分錢超值小課,JVM系列課程,共四小時直播!報名戳下方【瞭解更多】