国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數據庫中間件ProxySQL之讀寫分離

IT那活兒 / 1319人閱讀
數據庫中間件ProxySQL之讀寫分離

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!


適用場景

在讀多寫少的業務應用場景中,常常需要實現業務數據讀寫分離,數據讀寫分離的好處是顯而易見的,如提提高高并瓶頸下數據處理的效率,極大程度緩解鎖爭用,降低數據延遲時間等。
在沒有配置性能良好的MySQL中間件產品情況下,僅通過MySQL主從設置由業務程序人工設置MySQL主從IP的配置方式來實現讀寫分離,很容易會出現人工配置錯誤的情況,從而導致主從數據不一致、數據混亂的極為嚴重情況。由此可見選取一款性能優異的中間件產品就顯得尤為重要。

現在我們介紹一款基于ProxySQL中間件實現業務數據讀寫分離的方案,是一個可以實現MySQL讀寫分離的輕量級工具,是一款開源的中間件的產品,是一個靈活的 MySQL 代理層,可以實現數據的讀寫分離。


ProxySQL簡介

2.1 介紹

ProxySQL是由C++語言開發,可以實現MySQL數據讀寫分離的輕量級工具,一款MySQL數據庫的開源中間件產品,輕量級但性能優異(支持處理千億級數據),具有如下功能:

  • 多種方式的讀寫分離;
  • 定制基于用戶、基于schema、基于語言的規則對SQL語句進行路由;
  • 緩存查詢結果;
  • 后端節點的控制。

2.2 特點

  • 將所有配置保存寫入到SQLit表中;
  • 支持動態加載配置,即一般可以在線修改配置,但有少部分參數還是需要重啟來生效;
  • 支持query cache;
  • 支持對query的路由,可以針對某個語句進行分配去哪個實例執行;
  • 故障切換;
  • 過濾危險的SQL;
  • 不支持分表,可以分庫,但是利用規則配置實現分表。


技術架構



MySQL、Keepalived安裝

安裝過程可參考往期發布的文章:
mysql主主+keepalived高可用

Mysql+Keepalived高可用最佳配置實踐


ProxySql安裝詳細步驟

5.1 設置yum源

5.2 安裝依賴包

#yum install openssl openssl-devel kernel-devel gcc gcc-c++ -y
#yum install perl-DBI -y
#yum install perl-DBD-MySQL -y
#yum install perl-Time-HiRes -y
#yum install perl-IO-Socket-SSL -y

5.3 安裝proxysql

#yum install -y proxysql-1.4.8-1-centos7.x86_64.rpm

5.4 設置環境

#mkdir -p /var/lib/proxysql
#chown -Rf mysql.mysql /usr/share/proxysql/
#chown -Rf mysql.mysql /var/lib/proxysql
#chown mysql.mysql /etc/proxysql.cnf
#systemctl start proxysql.service

5.5 配置過程

Proxysql配置是通過一個多級配置系統,將配置從運行時環境移到內存,并在有需求時持久化到磁盤上,由這 3 個層次的組成,如下:
mysql -uadmin -padmin -h127.0.0.1 -P6032
1)添加后端mysql主機
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(1, 192.168.100.1,3306,1,Write Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.2,3306,1,Read Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.3,3306,1,Read Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.4,3306,1,Read Group);
2)添加可以訪問后端主機的賬號
mysql后端主機:
GRANT ALL ON *.* TO shsnc@192.168.% IDENTIFIED BY 1qaz!QAZ;
#default_hostgroup默認組設置為寫組,也就是1。
mysql>insert into 
mysql_users(username,password,default_hostgroup,transaction_persistent)values(shsnc,1qaz!QAZ,1,1)
;
3)添加健康監測的賬號
#在后端主機中添加可以訪問數據庫的賬號,SELECT權限即可。
mysql>GRANT SELECT ON *.* TO monitor@192.168.% 
IDENTIFIED BY MonitoR;
#在proxysql管理端中修改變量設置健康檢測的賬號。
mysql>set mysql-monitor_username=monitor;
mysql>set mysql-monitor_password=MonitoR;
4)添加讀寫分離的路由規則
mysql>insert into 
mysql_query_rules(rule_id,active,match_digest,destination_ho
stgroup,apply
)values(1,1,^SELECT.*FOR UPDATE$,1,1)
;

mysql>insert into 
mysql_query_rules(rule_id,active,match_digest,destination_ho
stgroup,apply
)values(2,1,^SELECT,2,1)
;
5)修改的數據加載至RUNTIME中
#load進runtime,是配置生效。
mysql>load mysql users to runtime;
mysql>load mysql servers to runtime;
mysql>load mysql query rules to runtime;
mysql>load mysql variables to runtime;
mysql>load admin variables to runtime;
#save到磁盤(/var/lib/proxysql/proxysql.db)中。
mysql>save mysql users to disk;
mysql>save mysql servers to disk;
mysql>save mysql query rules to disk;
mysql>save mysql variables to disk;
mysql>save admin variables to disk;
6)驗證
mysql>select * from stats_mysql_query_digest;
mysql>select * from stats_mysql_processlist ;
mysql>select * from runtime_mysql_servers;
7)查看日志
$less /var/lib/proxysql/proxysql.log



本文作者:程繼貴(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129148.html

相關文章

  • UCloud MySQL云數據讀寫分離

    摘要:讀寫分離中間件具有獨立的。變量語句將被廣播考慮到節點間數據一致性問題,只會分發到主節點。節點健康檢查,提升數據庫系統可用性。UCloud MySQL云數據庫讀寫分離 背景 數據顯示,關系型數據庫在OLTP業務下96.87%都在等待讀I/O,而處理器計算僅僅占了5.3%,這說明要提高數據庫的QPS性能,關鍵的一點是提高系統的IO能力。 另一個數據表明, 大多數業務對數據庫的訪...

    joywek 評論0 收藏0
  • 基于開源應用快速構建HTAP系統

    摘要:利用快速構建系統。構建系統和的安裝本文不再贅述,直接開始動手構建系統。分別為和,用于讀寫組,用于只讀組。最后配置的監控服務可選,非必須至此,一個全部基于開源應用的簡易系統就構建好了。利用ProxySQL、MySQL、ClickHouse快速構建HTAP系統。1. 關于ClickHouse企業里隨著數據量的增加,以及日趨復雜的分析性業務需求,主要適用于OLTP場景的MySQL壓力越來越大。多年...

    Tecode 評論0 收藏0
  • ProxySQL的基于sql指紋的阻斷

    摘要:我這里的實驗環境單機單主,已經配置好了讀寫分離策略。這些都不是本文的重點,就一帶而過吧。我下面只貼基于指紋的阻斷的配置。我這里的實驗環境:單機proxysql+mgr單主,已經配置好了讀寫分離策略。這些都不是本文的重點,就一帶而過吧。我下面只貼基于sql指紋的阻斷的配置。我們這里先查看下當前proxysql的 query rule表nonerule_idactivedigestmatch_p...

    番茄西紅柿 評論0 收藏2637
  • ProxySQL的基于sql指紋的阻斷

    摘要:我這里的實驗環境單機單主,已經配置好了讀寫分離策略。這些都不是本文的重點,就一帶而過吧。我下面只貼基于指紋的阻斷的配置。我這里的實驗環境:單機proxysql+mgr單主,已經配置好了讀寫分離策略。這些都不是本文的重點,就一帶而過吧。我下面只貼基于sql指紋的阻斷的配置。我們這里先查看下當前proxysql的 query rule表nonerule_idactivedigestmatch_p...

    番茄西紅柿 評論0 收藏2637

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<