MySQL ProxySQL 是一個高可用性的 MySQL 集群的負載均衡器,具有以下的特性:
- 作為中間層在應用程序與數據庫之間進行信息交互
- 支持自動切換到備用節點,從而實現高可用性
- 支持查詢緩存和數據庫池技術,提升性能
- 支持讀寫分離和負載均衡,有效分擔數據庫的壓力
ProxySQL 的安裝非常簡單,可以通過源碼編譯安裝或者直接安裝二進制文件。以下是通過源碼編譯安裝的步驟。
$ wget https://github.com/sysown/proxysql/archive/v2.0.5.tar.gz $ tar -xvf v2.0.5.tar.gz $ cd proxysql-2.0.5/ $ ./configure --prefix=/usr/local/proxysql $ make && make install
配置 ProxySQL 需要編輯配置文件并重啟服務。以下是配置文件的一部分示例。
datadir="/var/lib/proxysql" admin_variables= { admin_credentials="admin:admin" mysql_ifaces="127.0.0.1:6032" } mysql_variables= { threads=4 max_connections=2048 default_query_delay=0 default_query_timeout=36000000 have_ssl=false poll_timeout=2000 interfaces="0.0.0.0:6033;/tmp/proxysql.sock" default_schema="information_schema" stacksize=1048576 } mysql_servers = { { hostgroup_id = 10, hostname = "192.168.1.100", port = 3306, weight = 1, max_connections=100 }, { hostgroup_id = 10, hostname = "192.168.1.101", port = 3306, weight = 1, max_connections=100 }, { hostgroup_id = 20, hostname = "192.168.1.102", port = 3306, weight = 1, max_connections=100 } }
以上示例中,配置文件分為三部分:管理變量、MySQL 變量和 MySQL 服務器。可以根據實際情況進行修改。
啟動和停止 ProxySQL 可以使用如下命令。
$ /usr/local/proxysql/bin/proxysql -f -D /var/lib/proxysql $ /usr/local/proxysql/bin/proxysql --stop
總之,MySQL ProxySQL 可以幫助我們實現數據庫集群的高可用性、負載均衡和讀寫分離,是 MySQL 數據庫集群的重要組成部分。