自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析Lua腳本:MySQL Proxy工作機(jī)制

移動(dòng)開(kāi)發(fā) iOS
MySQL Proxy工作機(jī)制是本文要介紹的內(nèi)容,主要是來(lái)了解MySQL Proxy的lua腳本語(yǔ)言的使用,具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。

MySQL Proxy處于客戶端應(yīng)用程序和MySQL服務(wù)器之間,通過(guò)截?cái)?、改變并轉(zhuǎn)發(fā)客戶端和后端數(shù)據(jù)庫(kù)之間的通信來(lái)實(shí)現(xiàn)其功能,這和WinGate之類的網(wǎng)絡(luò)代理服務(wù)器的基本思想是一樣的。代理服務(wù)器是和TCP/IP協(xié)議打交道,而要理解MySQL Proxy的工作機(jī)制,同樣要清楚MySQL客戶端和服務(wù)器之間的通信協(xié)議,MySQL Protocol包括認(rèn)證和查詢兩個(gè)基本過(guò)程:

認(rèn)證過(guò)程包括:

客戶端向服務(wù)器發(fā)起連接請(qǐng)求

服務(wù)器向客戶端發(fā)送握手信息

客戶端向服務(wù)器發(fā)送認(rèn)證請(qǐng)求

服務(wù)器向客戶端發(fā)送認(rèn)證結(jié)果

如果認(rèn)證通過(guò),則進(jìn)入查詢過(guò)程:

客戶端向服務(wù)器發(fā)起查詢請(qǐng)求

服務(wù)器向客戶端返回查詢結(jié)果

當(dāng)然,這只是一個(gè)粗略的描述,每個(gè)過(guò)程中發(fā)送的包都是有固定格式的,想詳細(xì)了解MySQL Protocol的同學(xué),可以去這里看看。MySQL Proxy要做的,就是介入?yún)f(xié)議的各個(gè)過(guò)程。首先MySQL Proxy以服務(wù)器的身份接受客戶端請(qǐng)求,根據(jù)配置對(duì)這些請(qǐng)求進(jìn)行分析處理,然后以客戶端的身份轉(zhuǎn)發(fā)給相應(yīng)的后端數(shù)據(jù)庫(kù)服務(wù)器,再接受服務(wù)器的信息,返回給客戶端。所以MySQL Proxy需要同時(shí)實(shí)現(xiàn)客戶端和服務(wù)器的協(xié)議。

由于要對(duì)客戶端發(fā)送過(guò)來(lái)的SQL語(yǔ)句進(jìn)行分析,還需要包含一個(gè)SQL解析器??梢哉f(shuō)MySQL Proxy相當(dāng)于一個(gè)輕量級(jí)的MySQL了,實(shí)際上,MySQL Proxy的admin server是可以接受SQL來(lái)查詢狀態(tài)信息的。

MySQL Proxy通過(guò)lua腳本來(lái)控制連接轉(zhuǎn)發(fā)的機(jī)制。主要的函數(shù)都是配合MySQL Protocol各個(gè)過(guò)程的,這一點(diǎn)從函數(shù)名上就能看出來(lái):

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

至于為什么采用lua腳本語(yǔ)言,我想這是因?yàn)镸ySQL Proxy中采用了wormhole存儲(chǔ)引擎的關(guān)系吧,這個(gè)蟲(chóng)洞存儲(chǔ)引擎很有意思,數(shù)據(jù)的存儲(chǔ)格式就是一段lua腳本,真是創(chuàng)意無(wú)限啊。

小結(jié):MySQL Proxy Lua腳本工作機(jī)制淺析的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

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內(nèi)存管理系統(tǒng)

2011-08-24 13:32:17

2011-08-30 11:09:26

MySQL ProxyLua

2011-08-30 10:36:31

Ubuntu 9.04Mysql ProxyLua

2011-08-30 13:08:55

Mysql ProxyLua分離

2011-08-30 13:26:18

Mysql ProxyLua

2011-08-30 10:08:38

Centos 5.2Mysql ProxyLUA

2011-08-30 10:51:40

MySQL ProxyLua分離

2011-08-30 09:47:00

Linux5u3luaMySQL Proxy

2018-08-20 16:00:23

MySQL并發(fā)控制MVCC

2010-06-07 13:30:15

2009-07-16 10:23:30

iBATIS工作原理

2017-04-12 11:46:46

前端瀏覽器渲染機(jī)制

2011-08-24 16:59:59

LuaModule

2021-08-30 09:44:47

Kubelet機(jī)制驅(qū)逐

2022-10-26 08:00:43

Activiti工作流BPM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)