SQL Proxy – MaxScale簡介

Views: 2100

MaxScale是一款專為MariaDB/Gelera Cluster所設計的SQL Proxy,MaxScale能幫助我們達到以下目的

  • Load Balance 負載平衡
  • 讀寫分離 – Readconnroute、Readwritesplit Route
  • Master Node Failover故障轉移、Slave Node delay檢測
  • SchemaRouter 分庫分表
  • SQL Firewall  針對特定sql dml做policy管制,如不能下delete from table
  • Querying caching 數據快取

Readconnroute 、Readwritesplit Route都可以達到負載平衡及讀寫分離,差異如下

Readconnroute 

Readconnroute基於connection,類似tcp load balance的方式執行負載平衡,不分析SQL語法,只執行connection forward,如果是Galera Cluster架構(每台皆可讀寫),讀寫可以同一個port,如果是Replication架構,讀寫必須不同port

Readwritesplit Route

Readwritesplit Route透過分析SQL語法,將Insert/Delete/Update的Query轉發到Master Node,Select的Query轉發到Slave Node,不管是Galera Cluster或是Replication架構,因為是藉由分析SQL語法來達到讀寫分離,所以使用Readwritesplit Route讀寫可以同一個port
 
 
如果程式框架(e.g. Laravel)或程式語言(Java JDBC)本身有支援讀寫分離的話,使用Readconnroute 、Readwritesplit Route都可以,但Readwritesplit Route因為是分析SQL語法,對MaxScale的負載會較大,所以程式框架或語言本身有支援讀寫分離的話,使用Readconnroute模式就可以
 
如果程式本身不支援讀寫分離的話,只能使用Readwritesplit Route模式

個人覺得美中不足的地方 : 沒有Connection Pool

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *