目前proxy中的rw-splitting.lua实现读写分离的功能,它也整合了balance.lua。
proxy中的C语言与lua的职责的划分
C语言接收数据包,lua来分析数据包。
C语言主要实现一些不经常变动的部分,lua则承担了proxy中经常变动的策略那一部分
比如读写分离的策略,负载均衡的策略,这些参数和方式都会随环境的变化而变化,
也在调试的过程中会不断的变更。
proxy中C语言与lua共享的一部分数据
C语言将queries(sql的一些语句构成的队列),backends的队列,connection对象共享到
lua环境下,其中queries和connection主要是针对客户端侧的共享数据,backends主要是后端
Mysql服务器的一些配置信息。这些对象都是带操作集(metatable)的,方法都是C实现的。
proxy中使用了2个lua环境
network_mysqld_con中存在2个lua_State对象;一个是针对Client侧的,一个是Server侧的。
Client侧的plugin_conn_state;Server侧的srv->priv;
阅读(1777) | 评论(0) | 转发(0) |