溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

分布式數(shù)據(jù)庫(kù)DDM Sidecar模式如何部署負(fù)載均衡

發(fā)布時(shí)間:2021-12-02 09:15:08 來(lái)源:億速云 閱讀:181 作者:柒染 欄目:云計(jì)算

分布式數(shù)據(jù)庫(kù)DDM Sidecar模式如何部署負(fù)載均衡,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

簡(jiǎn)介

1.分布式數(shù)據(jù)庫(kù)中間件 DDM

分布式數(shù)據(jù)庫(kù)中間件(Distributed Database Middleware)是解決數(shù)據(jù)庫(kù)容量、性能瓶頸和分布式擴(kuò)展問(wèn)題的中間件服務(wù),提供分庫(kù)分表、讀寫分離、彈性擴(kuò)容等能力,應(yīng)對(duì)海量數(shù)據(jù)的高并發(fā)訪問(wèn)場(chǎng)景,有效提升數(shù)據(jù)庫(kù)讀寫性能。

2.MySQL Router

mysql-router是mysql官方的輕量級(jí)的中間件,用于取代MySQL Proxy應(yīng)用程序像訪問(wèn)MySQL一樣訪問(wèn)MySQL Router,由MySQL Router將數(shù)據(jù)轉(zhuǎn)發(fā)給后端的DDM節(jié)點(diǎn),實(shí)現(xiàn)Sidecar模式負(fù)載均衡。

Sidecar模式是一種從應(yīng)用程序本身剝離應(yīng)用程序功能作為單獨(dú)進(jìn)程的方法。此模式允許我們向應(yīng)用無(wú)侵入添加多種功能,從而無(wú)需向應(yīng)用程序添加其他配置代碼。建議MySQL Router與應(yīng)用程序部署在同一臺(tái)機(jī)器做Sidecar模式負(fù)載均衡,相對(duì)于服務(wù)端形式的負(fù)載均衡,Sidecar模式實(shí)現(xiàn)負(fù)載均衡可以縮短調(diào)用鏈路,減少服務(wù)端中心節(jié)點(diǎn)的壓力,去中心化,使用更加可靠更加高效。

部署Mysql-Router服務(wù)

# 解壓安裝程序文件

tar -xzvf mysql-router-8.0.11-linux-glibc2.12-x86-64bit.tar.gz

# 重命名安裝文件夾

mv mysql-router-8.0.11-linux-glibc2.12-x86-64bit /usr/local/mysqlrouter

# 創(chuàng)建日志和配置相關(guān)文件存放目錄

cd /usr/local/mysqlrouter

mkdir logs

mkdir etc

# 利用模板文件創(chuàng)建配置文件

cp /usr/local/mysqlrouter/share/doc/mysqlrouter/sample_mysqlrouter.conf ./etc/mysqlrouter.conf

# 啟動(dòng) mysql router

/usr/local/mysqlrouter/bin/mysqlrouter -c /usr/local/mysqlrouter/etc/mysqlrouter.conf &

配置文件詳解

首先,獲取DDM連接串,如下圖所示:

分布式數(shù)據(jù)庫(kù)DDM Sidecar模式如何部署負(fù)載均衡

下面詳細(xì)介紹mysql-router三種配置方式:

01

作為中心代理節(jié)使用

mysql-router綁定IP不限制,即監(jiān)聽所有ip,任意節(jié)點(diǎn)都可以訪問(wèn),作為數(shù)據(jù)庫(kù)訪問(wèn)代理,輪詢DDM各個(gè)節(jié)點(diǎn)。其中,destinations為上文獲得的DDM連接串。

vi /usr/local/mysqlrouter/etc/mysqlrouter.conf

[DEFAULT]

logging_folder = /usr/local/mysqlrouter/log/

plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter/

config_folder = /usr/local/mysqlrouter/etc/

runtime_folder = /usr/local/mysqlrouter/run/

[logger]

level = INFO

# 負(fù)載均衡配置

[routing:balancing]

# 綁定的IP地址

bind_address=0.0.0.0

# 監(jiān)聽的端口

bind_port = 7002

# 連接超時(shí)時(shí)間(秒)

connect_timeout = 3

# 最大連接數(shù)

max_connections = 100

# 后端服務(wù)器地址.默認(rèn)讀進(jìn)行輪詢

destinations = 192.168.4.235:5066,192.168.4.231:5066

# 路由策略

routing_strategy=round-robin

[keepalive]

interval = 60

連接示例:

[root@xxx ]# ./mysql -uddmtest -h228.11.2.2 -P7002 -p

Enter password:

mysql>

128.11.2.2為Mysql Router所在IP。

02

作為本地?cái)?shù)據(jù)庫(kù)代理使用

mysql-router綁定本地地址127.0.0.1,作為本地?cái)?shù)據(jù)庫(kù)訪問(wèn)代理,僅允許當(dāng)前節(jié)點(diǎn)訪問(wèn)數(shù)據(jù)庫(kù)。其要求需要訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用與router部署在同一節(jié)點(diǎn),更安全可靠。

vi /usr/local/mysqlrouter/etc/mysqlrouter.conf

[DEFAULT]

logging_folder = /usr/local/mysqlrouter/log/

plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter/

config_folder = /usr/local/mysqlrouter/etc/

runtime_folder = /usr/local/mysqlrouter/run/

[logger]

level = INFO

# 負(fù)載均衡配置

[routing:balancing]

# 綁定的IP地址

bind_address=127.0.0.1

# 監(jiān)聽的端口

bind_port = 7002

# 連接超時(shí)時(shí)間(秒)

connect_timeout = 3

# 最大連接數(shù)

max_connections = 100

# 后端服務(wù)器地址.默認(rèn)讀進(jìn)行輪詢

destinations = 192.168.4.235:5066,192.168.4.231:5066

# 路由策略

routing_strategy=round-robin

[keepalive]

interval = 60

連接示例:

[root@xxx ]# ./mysql -uddmtest -h227.0.0.1 -P7002 -p

Enter password:

mysql>

mysql客戶端與Mysql Router在同一節(jié)點(diǎn)。

03

作為本地?cái)?shù)據(jù)庫(kù)代理,使用Unix sockets連接(推薦)

mysql-router不綁定ip和端口,只使用Unix sockets連接,這樣可以不經(jīng)過(guò)tcp協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù),只走操作系統(tǒng)socket通道,更加高效。其同樣要求需要訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用與router部署在同一節(jié)點(diǎn),但是安全可靠,且高效。

 vi etc/mysqlrouter.conf

[DEFAULT]

logging_folder = /usr/local/mysqlrouter/log/

plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter/

config_folder = /usr/local/mysqlrouter/etc/

runtime_folder = /usr/local/mysqlrouter/run/

[logger]

level = INFO

# 負(fù)載均衡配置

[routing:balancing]

# 綁定的IP端口

socket = /tmp/mysqlrouter.sock

# 連接超時(shí)時(shí)間(秒)

connect_timeout = 3

# 最大連接數(shù)

max_connections = 100

# 后端服務(wù)器地址.默認(rèn)讀進(jìn)行輪詢

destinations = 192.168.4.235:5066,192.168.4.231:5066

# 路由策略

routing_strategy=round-robin

[keepalive]

interval = 60

其中,destinations為上文獲得的DDM連接串

連接示例:

[root@xxx ]# ./mysql -uddmtest -p -S /tmp/mysqlrouter.sock

Enter password:

mysql>

mysql客戶端與Mysql Router在同一節(jié)點(diǎn)。

關(guān)于分布式數(shù)據(jù)庫(kù)DDM Sidecar模式如何部署負(fù)載均衡問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI