浅析Lua脚本:MySQL Proxy工作机制

移动开发 iOS
MySQL Proxy工作机制是本文要介绍的内容,主要是来了解MySQL Proxy的lua脚本语言的使用,具体内容的实现来看本文详解。

MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断、改变并转发客户端和后端数据库之间的通信来实现其功能,这和WinGate之类的网络代理服务器的基本思想是一样的。代理服务器是和TCP/IP协议打交道,而要理解MySQL Proxy的工作机制,同样要清楚MySQL客户端和服务器之间的通信协议,MySQL Protocol包括认证和查询两个基本过程:

认证过程包括:

客户端向服务器发起连接请求

服务器向客户端发送握手信息

客户端向服务器发送认证请求

服务器向客户端发送认证结果

如果认证通过,则进入查询过程:

客户端向服务器发起查询请求

服务器向客户端返回查询结果

当然,这只是一个粗略的描述,每个过程中发送的包都是有固定格式的,想详细了解MySQL Protocol的同学,可以去这里看看。MySQL Proxy要做的,就是介入协议的各个过程。首先MySQL Proxy以服务器的身份接受客户端请求,根据配置对这些请求进行分析处理,然后以客户端的身份转发给相应的后端数据库服务器,再接受服务器的信息,返回给客户端。所以MySQL Proxy需要同时实现客户端和服务器的协议。

由于要对客户端发送过来的SQL语句进行分析,还需要包含一个SQL解析器。可以说MySQL Proxy相当于一个轻量级的MySQL了,实际上,MySQL Proxy的admin server是可以接受SQL来查询状态信息的。

MySQL Proxy通过lua脚本来控制连接转发的机制。主要的函数都是配合MySQL Protocol各个过程的,这一点从函数名上就能看出来:

  1. connect_server()   
  2. read_handshake()   
  3. read_auth()   
  4. read_auth_result()   
  5. read_query()   
  6. read_query_result()  

至于为什么采用lua脚本语言,我想这是因为MySQL Proxy中采用了wormhole存储引擎的关系吧,这个虫洞存储引擎很有意思,数据的存储格式就是一段lua脚本,真是创意无限啊。

小结:MySQL Proxy Lua脚本工作机制浅析的内容介绍完了,希望通过本文的学习能对你有所帮助

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-30 09:59:47

Mysql ProxyLUA

2011-08-30 12:49:59

Mysql ProxyLua分离

2011-08-30 10:28:11

MySQL ProxyLUA

2011-08-30 11:00:10

MySQL ProxyLua

2022-06-01 16:01:58

MySQL内存管理系统

2011-08-24 13:32:17

2011-08-30 11:09:26

MySQL ProxyLua

2011-08-30 13:08:55

Mysql ProxyLua分离

2011-08-30 10:36:31

Ubuntu 9.04Mysql ProxyLua

2011-08-30 13:26:18

Mysql ProxyLua

2011-08-30 10:51:40

MySQL ProxyLua分离

2011-08-30 10:08:38

Centos 5.2Mysql ProxyLUA

2011-08-30 09:47:00

Linux5u3luaMySQL Proxy

2018-08-20 16:00:23

MySQL并发控制MVCC

2010-06-07 13:30:15

2009-07-16 10:23:30

iBATIS工作原理

2011-08-24 16:59:59

LuaModule

2021-08-30 09:44:47

Kubelet机制驱逐

2017-04-12 11:46:46

前端浏览器渲染机制

2011-08-23 10:29:13

LuaPlayer
点赞
收藏

51CTO技术栈公众号