【15.7.4.3. Capturing a Connection with connect_server()】
當 proxy 接受了來自 MySQL 客戶端的鏈接時,connect_server() 函數被觸發。
該函數沒有任何參數,可是你能夠使用 proxy.connection 表信息,甚至能夠對該表進行修改。該表信息對每個客戶端會話都是惟一的。
例如,若是你有多個 backend servers ,你能夠經過設置 proxy.connection.backend_ndx 的值爲有效的服務器號來指定當前鏈接使用哪一個服務器。下面的代碼基於以分鐘表示的當前時間是奇數仍是偶數的方式,在兩臺服務器之間進行選擇。
function connect_server()
print("--> a client really wants to talk to a server")
if (tonumber(os.date("%M")) % 2 == 0) then
proxy.connection.backend_ndx = 2
print("Choosing backend 2")
else
proxy.connection.backend_ndx = 1
print("Choosing backend 1")
end
print("Using " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)
end
該例子一樣打印了存儲在內部結構 proxy.global.backends 表中的 IP地址/port 的組合字符串。