預先公開發布:2024-07-17
MySQL Router 是高可用性 (HA) 解決方案的建構區塊。它透過智慧型地將連線路由至 MySQL 伺服器,以提高效能和可靠性,從而簡化應用程式開發。
MySQL Router 是 InnoDB Cluster 的一部分,是一種輕量型中介軟體,可在您的應用程式和後端 MySQL 伺服器之間提供透明的路由。它用於各種不同的使用案例,例如透過將資料庫流量路由至適當的後端 MySQL 伺服器來提供高可用性和可擴展性。可插拔架構也讓開發人員能夠擴充 MySQL Router 以用於自訂使用案例。
MySQL Group Replication 會跨多部伺服器複寫資料庫,同時在伺服器故障時執行自動容錯移轉。當與 InnoDB Cluster 一起使用時,MySQL Router 會作為 Proxy 來隱藏您網路上的多個 MySQL 執行個體,並將資料請求對應至其中一個叢集執行個體。只要有足夠的線上複本且元件之間的通訊完好無損,應用程式就能夠聯絡其中一個複本。MySQL Router 也透過讓應用程式連線至 MySQL Router,而不是直接連線至 MySQL,來實現此目的。
如需 MySQL Router 安裝的詳細資訊,請參閱安裝 MySQL Router。
如需 MySQL Router 部署的詳細資訊,請參閱部署 MySQL Router。
如需 MySQL Router 設定的詳細資訊,請參閱設定 MySQL Router。
當您設定 InnoDB Cluster 並讓 MySQL Router 執行時,您可以使用 MySQL Shell 主控台來測試 InnoDB Cluster 和 MySQL Router 的設定。
依預設,可以透過連線至以下項目來存取 InnoDB Cluster
-
傳統 MySQL 通訊協定
讀取/寫入連線:執行個體位址:連接埠 6446
唯讀連線:執行個體位址:連接埠 6447
-
X 通訊協定
讀取/寫入連線:執行個體位址:連接埠 6448
唯讀連線:執行個體位址:連接埠 6449
不要直接連線至其中一個 MySQL 伺服器執行個體,而是透過 MySQL Router 連線。
-
發出下列連線命令,其中使用者是
demo-user
,而執行個體的位址是demo-instance
,並且正在使用傳統 MySQL 通訊協定shell.connect ('demo-user@demo-instance:6446')
提供 root 密碼以連線至 InnoDB Cluster。
-
藉由建立變數
cluster
並將其指派為dba.getCluster()
JavaScript 方法的值,來檢查 InnoDB Cluster 的狀態cluster = dba.getCluster()
cluster.status()
-
切換至 SQL 模式
\sql
-
藉由發出下列命令,查詢執行個體正在執行的連接埠
SELECT @@port; +--------+ | @@port | +--------+ | 3310 | +--------+ 1 row in set (0.0007 sec)
在此範例中,InnoDB Cluster 正在連接埠 3310 上執行,因此 MySQL Router 已正確設定並順利執行。