当 proxy 接受了来自 MySQL 客户端的连接时,connect_server() 函数被触发。
该函数没有任何参数,但是你可以使用 proxy.connection 表信息,甚至可以对该表进行修改。该表信息对每一个客户端会话都是唯一的。
例如,如果你有多个 backend servers ,你可以通过设置 proxy.connection.backend_ndx 的值为有效的服务器号来指定当前连接使用哪个服务器。下面的代码基于以分钟表示的当前时间是奇数还是偶数的方式,在两台服务器之间进行选择。
该例子同样打印了存储在内部结构 proxy.global.backends 表中的 IP地址/port 的组合字符串。
该函数没有任何参数,但是你可以使用 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 的组合字符串。