【原创】MySQL Proxy - connect_server()

本文介绍了如何使用MySQL代理中的connect_server()函数来控制客户端连接到不同的后端服务器。通过示例代码展示了根据当前时间选择不同服务器的方法。
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 的组合字符串。


转载于:https://my.oschina.net/moooofly/blog/111761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值