zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【原创】MySQL Proxy - connect_server()

mysqlserver 原创 connect Proxy
2023-09-14 08:59:46 时间
       当 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")

 print("Using " .. proxy.global.backends[proxy.connection.backend_ndx].dst.name)

end


       该例子同样打印了存储在内部结构 proxy.global.backends 表中的 IP地址/port 的组合字符串。