一 主從檢測機制
admin查看檢測返回值
select hostgroup_id,hostname,port,status,max_replication_lag from runtime_mysql_servers;
檢測語句
show slave status
檢測頻率
mysql-monitor_replication_lag_interval:主從延遲檢測時間,默認10秒。
檢測值
second_master_behind爲非NULL max_replication_lag
second_master_behind爲NULL(複製出現異常狀況)
mysql-monitor_slave_lag_when_null 默認60s 換算成 max_replication_lag=60mysql
補充 mysql_servers的status是不能動態更新的,這點要牢記
二 鏈接池複用
狀況:一個後端DB的鏈接,能夠「同時」被多個客戶端使用
改進對比
傳統的鏈接池,會在客戶端斷開鏈接(會話)後,把鏈接放回到池裏。
在ProxySQL中,因爲鏈接複用,鏈接會在 sql語句 執行結束後,便將鏈接放回到池裏(客戶端會話可能並無斷開),這樣即可大大提升後端鏈接的使用效率,而避免前段請求過大致使後端鏈接數瘋長。sql
三 池總結和複用 數據庫
proxysql進行週期性的ping命令保持到後端數據庫的空閒連接,本地的鏈接池只會保留必定量的空閒連接,具體和參數設置有關係,新建的連接會被加入鏈接池後端
池
線程池是爲了快速和後端創建新的TCP鏈接
鏈接池是爲快速和後端應用已經打開的TCP鏈接安全
處理方式
1 當應用程序發送了一個MySQL請求給ProxySQL時,ProxySQL首先解析要路由到哪一個後端,若是鏈接池中已經有和該後端的鏈接,將重用該鏈接,不然將建立一個新的和後端的鏈接。
2 當處理完客戶端的請求後,鏈接會還回主機組管理器(HostGroup Manager)。若是主機組管理器判斷了該鏈接是能夠被安全共享的,且鏈接池未滿,則該鏈接會放進鏈接池。
空閒連接
1 放進鏈接池的鏈接都是空閒鏈接,正在使用的鏈接是不可能進入鏈接池的。
2 ProxySQL會按期發送ping消息來維持空閒鏈接。若是某鏈接從上一次ping以後,若是尚未被使用,則該鏈接被定義爲空閒鏈接
3 對於每一個hostgroup/backend,主機組管理器只會保持鏈接池中的最大鏈接數爲mysql-free_connections_pct * mysql_servers.max_connections / 100。池中的每一個空閒鏈接都經過間斷性的ping來維持它的打開狀態。
空閒連接參數
1 對於空閒鏈接ping的時間間隔由變量mysql-ping_interval_server_msec控制
2 mysql-connection_max_age_ms 當該變量設置的值大於0時(單位毫秒),若是某個空閒鏈接(當前沒有任何會話使用)的空閒時長超過了這裏設置的值,則這個鏈接會關閉。默認值爲0,表示不會由於存活時間而關閉空閒鏈接服務器
四 proxysql 高可用
原理 監視指定主機組中全部服務器的read_only值,而且根據read_only的值將服務器分配給寫入器或讀取器主機組,定義 hostgroup 的主從關係。ProxySQL monitor 模塊會監控 HG 後端全部servers 的 read_only 變量,若是發現從庫的 read_only 變爲0、主庫變爲1,則認爲角色互換了,自動改寫 mysql_servers 表裏面 hostgroup 關係,達到自動 Failover 效果。
相關表mysql_replication_hostgroups
監控值('read_only','super_read_only','innodb_read_only')三者選1,默認read_only,最後一個值是適用於aws
填寫參數
writer_hostgroup_id reader_hostgroup_id comment
進行查詢
select * from runtime_mysql_replication_hostgroups 查詢有數據庫表明成功
select * from runtime_mysql_servers 從庫若是host_group_id已經變成write_group_id肯定切換成功
必須注意
1 proxysql只負責進行切換並不負責補償日誌,要牢記,必須配合其餘高可用手段(經過高可用調節read_only的值和proxysql進行配合)線程
2 一旦開啓此功能,會自動根據read_only進行分配group,優先級高於mysql_servers你指定插入的w/r-group-id,因此必須監控你從庫的read_only,防止加入主庫集羣日誌