MySQL中介軟體之ProxySQL(7):詳述ProxySQL的路由規
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html
會操作ProxySQL的Admin管理介面,可參考:
已經配置好了後端節點、mysql_users等。可參考:
如果想速成,可參考;
本文涉及到的實驗環境如下:
角色 | 主機IP | server_id | 資料狀態 |
---|---|---|---|
Proxysql | 192.168.100.21 | null | 無 |
Master | 192.168.100.22 | 110 | 剛安裝的全新MySQL例項 |
Slave1 | 192.168.100.23 | 120 | 剛安裝的全新MySQL例項 |
Slave2 | 192.168.100.24 | 130 | 剛安裝的全新MySQL例項 |
該實驗環境已經在前面的文章中搭建好,本文不再贅述一大堆的內容。環境的搭建請參考前面給出的1、2、3。
的文章,MySQL Router實現讀寫分離的方式就是透過監聽不同埠實現的:一個埠負責讀操作,一個埠負責寫操作。這樣的路由邏輯非常簡單,配置起來也很方便。
雖然基於埠實現讀寫分離配置起來非常簡單,但是缺點也很明顯:必須在前端app的程式碼中指定埠號碼。這意味著MySQL的一部分流量許可權被開發人員掌控了,換句話說,DBA無法全域性控制MySQL的流量。此外,修改埠號時,app的程式碼也必須做出相應的修改。
雖說有缺點,但為了我這個ProxySQL系列文章的完整性,本文還是要簡單演示ProxySQL如何基於埠實現讀寫分離。
首先修改ProxySQL監聽SQL流量的埠號,讓其監聽在不同埠上。
admin> set mysql-interfaces='0.0.0.0:6033;0.0.0.0:6034'; admin> save mysql variables to disk;
然後重啟ProxySQL。
[root@xuexi ~]# service proxysql stop[root@xuexi ~]# service proxysql start[root@xuexi ~]# netstat -tnlp | grep proxysqltcp 0 0 0.0.0.0:6032 0.0.0.0:* LISTEN 27572/proxysql tcp 0 0 0.0.0.0:6033 0.0.0.0:* LISTEN 27572/proxysql tcp 0 0 0.0.0.0:6034 0.0.0.0:* LISTEN 27572/proxysql
監聽到不同埠,再去修改mysql_query_rules
表。這個表是ProxySQL的路由規則定製表,後文會非常詳細地解釋該表。
例如,插入兩條規則,分別監聽在6033埠和6034埠,6033埠對應的hostgroup_id=10
是負責寫的組,6034對應的hostgroup_id=20
是負責讀的組。
insert into mysql_query_rules(rule_id,active,proxy_port,destination_hostgroup,apply) values(1,1,6033,10,1), (2,1,6034,20,1);load mysql query rules to runtime; save msyql query rules to disk;
這樣就配置結束了,是否很簡單?
其實除了基於埠進行分離,還可以基於監聽地址(修改欄位proxy_addr即可),甚至可以基於客戶端地址(修改欄位client_addr欄位即可,該用法可用於採集資料、資料分析等)。
無論哪種路由方式,其實都是在修改mysql_query_rules表,所以下面先解釋下這個表。
相關的設定,目前mirroring正處於實驗階段,所以不解釋。
error_msg:查詢將被阻塞,然後向客戶端返回error_msg
指定的資訊。
sticky_conn:當前還未實現該功能。
multiplex:如果設定為0,將禁用multiplexing。如果設定為1,則啟用或重新啟用multiplexing,除非有其它條件(如使用者變數或事務)阻止啟用。如果設定為2,則只對當前查詢不禁用multiplexing。預設值為NULL
,表示不會修改multiplexing的策略。
log:查詢將記錄日誌。
apply:當設定為1後,當匹配到該規則後,將立即應用該規則,不會再評估其它的規則(注意:應用之後,將不會評估mysql_query_rules_fast_routing
中的規則)。
comment:註釋說明欄位,例如描述規則的意義。
。本文介紹其中3個和路由、規則相關的表。
https://www.cnblogs.com/f-ck-need-u/p/9300829.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2804495/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中介軟體之ProxySQL(14):ProxySQL+PXCMySql
- MySQL中介軟體之ProxySQLMySql
- MySQL中介軟體--ProxySQLMySql
- MySQL中介軟體之ProxySQL(1):簡介和安裝MySql
- MySQL中介軟體之ProxySQL(3):初試讀寫分離MySql
- MySQL中介軟體之ProxySQL(5):執行緒、執行緒池、連線池MySql執行緒
- 如何在滴滴雲 DC2 上搭建 ProxySQL 中介軟體SQL
- 使用proxysql 1.4.14中介軟體實現mysql 5.7.26主從的讀寫分離MySql
- 高可用 proxysql + mysql MGRMySql
- mysql審計日誌-ProxySQLMySql
- 通過 ProxySQL 在 TiDB 上實現 SQL 的規則化路由SQLTiDB路由
- proxysql mysql_query_rules 翻譯MySql
- ProxySQL實現MySQL讀寫分離MySql
- 技術分享 | ProxySQL 搭配 MySQL HA (下)MySql
- 使用 ProxySQL 改進 MySQL SSL 的連線效能MySql
- 路由中介軟體路由
- proxysql global_variables 翻譯SQL
- ProxySQL實現Mysql讀寫分離 - 部署手冊MySql
- MySQL中介軟體MySql
- proxysql安裝和使用小記SQL
- API 路由中介軟體的詭異API路由
- 路由的中介軟體執行順序路由
- 中介軟體之訊息中介軟體-pulsar
- gin自動路由中介軟體路由
- go fiber:路由中介軟體Go路由
- 使用ProxySQL實現MySQL Group Replication的故障轉移、讀寫分離(一)MySql
- 【DB寶41】監控利器PMM的使用--監控MySQL、PG、MongoDB、ProxySQL等MySqlMongoDB
- ERROR 1045 (28000): ProxySQL Error: 報錯ErrorSQL
- Redux中介軟體之redux-thunk使用詳解Redux
- 使用 defineNuxtRouteMiddleware 建立路由中介軟體UX路由
- ProxySQL Cluster 高可用叢集環境部署記錄SQL
- 部署MHA+keepalived+ProxySQL高可用架構SQL架構
- Express中介軟體原理詳解Express
- middleware 中介軟體詳解
- 【MYsql】Maxscale中介軟體使用MySql
- MySQL中介軟體方案盤點MySql
- Mysql中介軟體 oneProxy的使用總結MySql
- ProxySQL簡介原理及讀寫分離應用SQL