top of page

MySQL InnoDB Cluster建置&架構說明

文章來源:Jesse Lin / 奧登資訊技術顧問


事前準備:

l 3台Ubuntu 22.04(安裝MySQL InnoDB,之後組成Cluster)

l 1台Client(安裝APP + MySQL Router,模擬外部連線)


建置說明

1. 3台Ubuntu 22.04安裝MySQL APT Repository

(重要,比各別下載安裝MySQL Cluster、Shell、MySQL Router相容性會比較好)

2. 3台Ubuntu 22.04安裝MySQL Shell

3. 3台Ubuntu 22.04安裝MySQL InnoDB(InnoDB Version 8.0.34)

4. Client安裝MySQL Shell + MySQL Router


架構說明

Single-Primary主從架構:

l APP API連結MySQL Router的6446 Port做讀寫

l Report連結MySQL Router的6447 Port做唯讀

l MySQL Router連結MySQL InnoDB Cluster的Primary Node

l MySQL InnoDB Cluster由三個MySQL DB組成

(一個 Primarys DB做讀寫,兩個 Secondary DB做唯讀)

Single-Primary主從架構,FailOver切換:

當DB 1意外停機時,Cluster裡面的DB 2會自動從Secondary Mode轉成Primary Mode,

Router會自動連接到DB 2


MySQL Router連線順序:

Router 1連線順序(DB 1 > 2 > 3)

Router 2連線順序(DB 2 > 1 > 3)

Router 3連線順序(DB 3 > 2 > 1)



Multi-Primary主主架構:

l 每個APP API分流連接 不同的MySQL Router

l MySQL Router再設定不同的MySQL DB連線順序,達到分流目的

l MySQL InnoDB Cluster由三個 MySQL DB組成,這三個Primary DB做讀寫

Multi-Primary主主架構,FailOver 切換:

l 這三個Router會各別設定DB連線優先順序

l 當DB 1意外停機時,Router 1原本的連線優先順序是DB 1、DB 2、DB 3

l 這時會依照Router設定檔 的優先順序 改連接到DB 2的DB


MySQL Router連線順序:

Router 1連線順序(DB 1 > 2 > 3)

Router 2連線順序(DB 2 > 1 > 3)

Router 3連線順序(DB 3 > 2 > 1)




Comments


bottom of page