MySQL Router用來取代MySQL Proxy,建議MySQL Router與應用程式部署在一台機器。應用程式像存取MySQL一樣存取MySQL Proxy,由MySQL Proxy將資料轉送給後端的MySQL。支援各種作業系統。
工作模式
#read-write
用於多主機伺服器,個人感覺也可用於主備,用於多主可以避免腦裂問題,但實際上多主只有一個為Active狀態。而MySQL的主從和多主複製恢復起來都比較麻煩,需要手動操作。相較之下MySQL Group Replication提供了更簡單的叢集自動維護方案。
所有請求被傳送到第一個伺服器,只在第一個伺服器宕機後才會使用後續的第二個伺服器。
不支援宕機伺服器恢復偵測
以下兩種情況將無法使用
從先宕機,然後恢復,主再宕機
主先宕機,然後恢復,從再宕機
[routing:example_strategy] bind_port = 7001 destinations = master1.example.com,master2.example.com,master3.example.com mode = read-writ
read-only
用於路由從伺服器叢集。
每個請求以輪詢方式存取所有伺服器。如果一個伺服器宕機,會嘗試使用下一個伺服器。如果所有伺服器宕機,路由將退出。重新可用的伺服器會被依照原來的順序重新加入到可用清單
[routing:ro_route] bind_port = 7002 destinations = slave1.example.com,slave2.example.com,slave3.example.com mode = read-only
啟動
mysqlrouter --config=/path/to/file/my_router.ini
需要將資料庫連線池的maxStatements=0設為0,否則當主機宕機後,連線池將無法在備機上找到對應的Statement而報錯。
效能
遠高於MySQL Proxy,相較於直連MySQL效能損失很小。
以上是mysql router怎麼樣的詳細內容。更多資訊請關注PHP中文網其他相關文章!