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

資訊專欄INFORMATION COLUMN

數(shù)據(jù)庫中間件ProxySQL之讀寫分離

IT那活兒 / 1328人閱讀
數(shù)據(jù)庫中間件ProxySQL之讀寫分離

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


適用場景

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

現(xiàn)在我們介紹一款基于ProxySQL中間件實現(xiàn)業(yè)務(wù)數(shù)據(jù)讀寫分離的方案,是一個可以實現(xiàn)MySQL讀寫分離的輕量級工具,是一款開源的中間件的產(chǎn)品,是一個靈活的 MySQL 代理層,可以實現(xiàn)數(shù)據(jù)的讀寫分離。


ProxySQL簡介

2.1 介紹

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

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

2.2 特點

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


技術(shù)架構(gòu)



MySQL、Keepalived安裝

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

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


ProxySql安裝詳細步驟

5.1 設(shè)置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 設(shè)置環(huán)境

#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配置是通過一個多級配置系統(tǒng),將配置從運行時環(huán)境移到內(nèi)存,并在有需求時持久化到磁盤上,由這 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默認組設(shè)置為寫組,也就是1。
mysql>insert into 
mysql_users(username,password,default_hostgroup,transaction_persistent)values(shsnc,1qaz!QAZ,1,1)
;
3)添加健康監(jiān)測的賬號
#在后端主機中添加可以訪問數(shù)據(jù)庫的賬號,SELECT權(quán)限即可。
mysql>GRANT SELECT ON *.* TO monitor@192.168.% 
IDENTIFIED BY MonitoR;
#在proxysql管理端中修改變量設(shè)置健康檢測的賬號。
mysql>set mysql-monitor_username=monitor;
mysql>set mysql-monitor_password=MonitoR;
4)添加讀寫分離的路由規(guī)則
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)修改的數(shù)據(jù)加載至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那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129148.html

相關(guān)文章

  • UCloud MySQL云數(shù)據(jù)讀寫分離

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

    joywek 評論0 收藏0
  • 基于開源應(yīng)用快速構(gòu)建HTAP系統(tǒng)

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

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

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

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

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

    番茄西紅柿 評論0 收藏2637

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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