日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路

發布時間:2025/3/8 数据库 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、mysql-proxy簡介

mysql-proxy是mysql官方提供的mysql中間件服務,上游可接入若干個mysql-client,后端可連接若干個mysql-server。

它使用mysql協議,任何使用mysql-client的上游無需修改任何代碼,即可遷移至mysql-proxy上。

mysql-proxy最基本的用法,就是作為一個請求攔截,請求中轉的中間層:

進一步的,mysql-proxy可以分析與修改請求。攔截查詢和修改結果,需要通過編寫Lua腳本來完成。

mysql-proxy允許用戶指定Lua腳本對請求進行攔截,對請求進行分析與修改,它還允許用戶指定Lua腳本對服務器的返回結果進行修改,加入一些結果集或者去除一些結果集均可。

所以說,根本上,mysql-proxy是一個官方提供的框架,具備良好的擴展性,可以用來完成:

sql攔截與修改

性能分析與監控

讀寫分離

請求路由

...

這個框架提供了6個hook點,能夠讓用戶能夠動態的介入到client與server中的通訊中去。

二、mysql-proxy架構與原理

如“簡介”中所述,mysql-proxy向用戶提供了6個hook點,讓用戶實現Lua腳本來完成各種功能,這些hook點是以函數的形式提供的,用戶可以實現這些函數,在不同事件、不同操作發生時,做我們期望的事情。

connect_server()

mysql-client向proxy發起連接時,proxy會調用這個函數。用戶可以實現該函數,來做一些負載均衡的事情,例如選擇將要連向那個mysql-server。假設有多個mysql-server后端,而用戶又沒有實現這個函數,proxy默認采用輪詢(round-robin)策略。

read_handshake()

mysql-server向proxy返回“初始握手信息”時,proxy會調用這個函數。用戶可以實現這個函數,來做更多的權限驗證工作。

read_auth()

mysql-client向proxy發送認證報文(user_name, password,database)時,proxy會調用這個函數。

read_auth_result()

mysql-server向proxy返回認證結果時,proxy會調用這個函數。

read_query()

認證完成后,mysql-client每次經過proxy向mysql-server發送query報文時,proxy會調用這個函數。用戶如果要攔截請求,就可以模擬mysql-server直接返回了,當然用戶亦可以實現各種策略,修改請求,路由請求等各種不同的業務邏輯。

read_query_result()

認證完成后,mysql-server每次經過proxy向mysql-client返回query結果時,proxy會調用這個函數。需要注意,如果用戶沒有顯示實現read_query()函數,則read_query_result()函數是不會被調用的。用戶可以在此處實現各種合并策略,或者對結果集進行修改。

下圖是一個各hook函數的觸發架構圖,箭頭方向表示觸發時機:

可以發現,最重要的兩個函數其實是read_query()和read_query_result(),各種sql的改寫與結果集的改寫邏輯,都是在這兩個函數中實現的,更細節的query過程如下圖:

三、mysql-proxy典型應用

案例一: sql時間統計分析

假設mysql-client提交的原sql為:

XYZ;

proxy可以在read_query()里將其改寫為:

SELECT NOW();

XYZ;

SELECT NOW();

這樣在返回結果集時,就可以在應用層對sql時間進行記錄,以方便統計分析。

案例二:sql性能統計分析

假設mysql-client提交的原sql為:

XYZ;

proxy可以在read_query()里將其改寫為:

XYZ;

EXPLAIN XYZ;

這樣在返回結果集時,就可以在應用層對sql性能進行記錄,以方便統計分析。

需要強調的是,這兩個案例,由于proxy在read_query()時對sql進行了改寫,故在read_query_result()時,mysql-server其實返回了比原請求更多的信息,proxy一定要將多余的信息去掉,再返回mysql-client。多說一句,可以加入一個唯一ID,來對請求sql和返回結果進行配對。

案例三:讀寫分離

mysql-proxy啟動時,通過參數即可配置后端mysql-server是主server還是read-only,無需修改任何代碼:

shell> mysql-proxy \

--proxy-backend-addresses=10.0.1.2:3306 \

--proxy-read-only-backend-addresses=10.0.1.3:3306

注意,這里的兩個mysql-server為主從架構。

案例四:性能水平擴展

mysql-proxy啟動時,通過參數配置多個后端,即可實現性能的水平擴展,無需修改任何代碼:

shell> mysql-proxy \

--proxy-backend-addresses=10.0.1.2:3306 \

--proxy-backend-addresses=10.0.1.3:3306

注意,這里的兩個mysql-server為主主架構,如果不做特殊修改,負載均衡策略為round-robin。

四、mysql-proxy其他問題

提問:Lua腳本引入的額外開銷有多大?

官網回答:Lua很快,對于大部分應用來說,額外開銷很小,原始包(raw packet)開銷大概在400微秒左右。

樓主:這,,,我不太相信。

提問:mysql-proxy和mysql-server可以部署在一臺機器上么?

官網回答:proxy單獨部署也可以,和mysql部署在同一臺機器上也可以。相比mysql而言,proxy不怎么占CPU和內存,其性能損耗可以忽略不計。

樓主:這,,,性能損耗可以忽略,這我也不太信。

提問:proxy可以處理SSL連接么?proxy不會獲取和保存我的明文密碼吧?

官網回答:作為中間人,不能處理加密信息。不會獲取密碼,也獲取不到。mysql協議不允許密碼以明文傳輸,傳輸的都是加密后的密文。

提問:在Lua腳本里可以使用LuaSocket,連緩存,連其他服務么?

官網回答:理論上可以。但是,大哥,你確定要這樣做么,強烈不建議這樣。

==【完】==

相關推薦:

總結

以上是生活随笔為你收集整理的mysql 横向扩展 中间件_mysql-proxy数据库中间件架构 | 架构师之路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少女与动物高清版在线观看 | 九九九九九精品 | www.国产.com| 理论片毛片 | 成人性爱视频在线观看 | 亚洲视频456 | 96久久精品| 波多野结衣在线观看一区二区 | 日韩欧美精品国产 | 免费av一级片 | 成年人高清视频 | 午夜一区二区三区 | av片在线看 | 中文在线一区二区 | 肉视频在线观看 | 亚洲青青草原 | 色婷婷综合网 | 国产天堂av在线 | 国产乡下妇女做爰毛片 | 精品人妻一区二区色欲产成人 | 视频在线91| 日本丰满熟妇bbxbbxhd | 四虎精品在线播放 | 美国av片| 久久男| 亚洲第一天堂影院 | 中文字幕亚洲一区二区三区 | 毛片一卡二卡 | 妖精视频在线观看免费 | 亚洲青涩| 橹图极品美女无圣光 | 最色网站 | 欧美 亚洲 视频 | 亚洲a级片 | 蜜桃久久久久 | 国产3p精品一区 | 日韩一级大片 | 亚洲一区二区三区在线视频 | 高清不卡一区 | 极品美女高潮 | 欲色网站 | 人妻一区二区三区四区五区 | 让男按摩师摸好爽 | 亚洲欧美激情在线 | a级一级黄色片 | 色视频综合| 美女涩涩视频 | 成人黄色在线观看视频 | 天天干天天插 | 国产精品区二区三区日本 | 国产精品第9页 | 日韩在线观看视频一区二区三区 | 中文字幕亚洲一区二区三区五十路 | 午夜日韩电影 | 日韩无码电影 | 欧美日韩1区2区3区 亚洲日本精品视频 | 午夜精品一区二区三区免费视频 | 2014亚洲天堂 | 人妻在卧室被老板疯狂进入 | 欧美精品videos另类 | 欧美精品在线一区二区 | 欧美妞干网| 爱爱视频久久 | 国产成人精品在线播放 | 美女视频久久久 | 精品自拍视频 | 日韩大片免费观看视频播放 | 全国男人的天堂网 | 一区二区三区免费高清视频 | 亚洲国产毛片aaaaa无费看 | 裸体视频软件 | 国产一级二级三级在线 | 蘑菇福利视频一区播放 | 中文字幕视频免费观看 | 国产男女猛烈无遮挡 | 第四色视频 | 污污网址在线观看 | 国产成人精品一区二区三区网站观看 | 2018自拍偷拍 | 国产福利精品在线观看 | 亚洲AV无码成人片在线观看 | 操碰97| 日韩精品――中文字幕 | 三级a毛片 | wwwxx国产 | 快播在线视频 | 亚洲美女性生活视频 | 中文字幕一区二区三区手机版 | 精品无码m3u8在线观看 | exo妈妈mv在线播放免费 | 亚洲美女精品 | 精品免费国产 | 调教小屁屁白丝丨vk | 丁香综合网 | 四虎在线观看 | 美女在线播放 | 人人爱爱人人 | 日本久久久久久久久久 | 欧美日韩激情 |