【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 的组合字符串。