久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在OneProxy的基礎(chǔ)上實(shí)行MySQL讀寫分離與負(fù)載均衡

共計(jì) 5007 個(gè)字符,預(yù)計(jì)需要花費(fèi) 13 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān)如何在 OneProxy 的基礎(chǔ)上實(shí)行 MySQL 讀寫分離與負(fù)載均衡,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

簡(jiǎn)介

Part1: 寫在最前

  OneProxy 平民軟件完全自主開發(fā)的分布式數(shù)據(jù)訪問層,幫助用戶在 MySQL/PostgreSQL 集群上快速搭建支持分庫分表的分布式數(shù)據(jù)庫中間件,也是一款具有 SQL 白名單(防 SQL 注入)及 IP 白名單功能的 SQL 防火墻軟件。采用與 MySQL Proxy 一致的反向協(xié)議輸出模式,對(duì)應(yīng)用非常簡(jiǎn)單和透明易用,讓用戶畏懼的數(shù)據(jù)庫故障切換(Failover)、讀寫分離(Read/Write Split)、分庫分表(Horizontal Partitioning)等復(fù)雜方案變得極其簡(jiǎn)單可控!基于 Libevent 機(jī)制實(shí)現(xiàn),單個(gè)實(shí)例可以實(shí)現(xiàn) 25 萬的 SQL 轉(zhuǎn)發(fā)能力,用一個(gè) OneProxy 節(jié)點(diǎn)可以帶動(dòng)整個(gè) MySQL 集群,為業(yè)務(wù)發(fā)展貢獻(xiàn)一份力量。

Part2: 環(huán)境簡(jiǎn)介

HE1:192.168.1.248 slave1

HE2:192.168.1.249 slave2

HE3:192.168.1.250 Master

HE4:192.168.1.251 Oneproxy

環(huán)境構(gòu)建

Part1: 安裝 Oneproxy

[root@HE4 ~]# tar xvf oneproxy-rhel5-linux64-v5.8.5-ga.tar.gz
[root@HE4 oneproxy]# ls
bin conf demo.sh log oneproxy.service README testadmin.sql testautocommit.sql testproxy.sql trantest.sql

Part2: 構(gòu)建主從環(huán)境

本文的架構(gòu)是一主兩從,HE3 作為 Master,HE1,HE2 作為 Slave。主從的構(gòu)建不是本文的重點(diǎn),需要的可移步:

如何快速使用 mysqlreplicate 搭建 MySQL 主從

Part3: 配置 Oneproxy

目錄中的 demo 是初次啟動(dòng)腳本,oneproxy.service 是啟停腳本, 在新版的 oneproxy 中,conf 文件夾的 proxy.cnf 為配置文件

[root@HE4 oneproxy]# cat demo.sh 
#/bin/bash
export ONEPROXY_HOME=/root/oneproxy
# valgrind --leak-check=full \
 ${ONEPROXY_HOME}/bin/oneproxy --defaults-file=${ONEPROXY_HOME}/conf/proxy.conf

我們將 demo.sh 中的 ONEPROXY_HOME 變更為解壓 oneproxy 時(shí)所在的目錄

[root@HE4 oneproxy]# cat oneproxy.service 
#!/bin/bash
# chkconfig: - 30 21
# description: OneProxy service.
# Source Function Library
. /etc/init.d/functions
# OneProxy Settings
ONEPROXY_HOME=/root/oneproxy
ONEPROXY_SBIN= ${ONEPROXY_HOME}/bin/oneproxy 
ONEPROXY_CONF= ${ONEPROXY_HOME}/conf/proxy.conf 
ONEPROXY_PID= ${ONEPROXY_HOME}/log/oneproxy.pid 
RETVAL=0
prog= OneProxy 
start() {
 echo -n $ Starting $prog ...  
 daemon $ONEPROXY_SBIN --defaults-file=$ONEPROXY_CONF
RETVAL=$?
stop() {
 echo -n $ Stopping $prog ...  
if [ -e ${ONEPROXY_PID} ]; then
daemon kill -INT $(cat ${ONEPROXY_PID})
 RETVAL=$?
restart(){
 stop
sleep 1
 start
case  $1  in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 restart
 ;;
 *)
 echo $ Usage: $0 {start|stop|restart} 
 RETVAL=1
exit $RETVAL

同時(shí),將 oneproxy.service 中的 ONEPROXY_HOME 也改為解壓時(shí)的目錄

進(jìn)入 oneproxy 中的 bin 目錄,使用 mysqlpwd 對(duì)密碼進(jìn)行加密

[root@HE4 oneproxy]# cd bin/
[root@HE4 bin]# ls
mysqlpwd oneproxy
[root@HE4 bin]# ./mysqlpwd MANAGER
1C6D087BA5D2607A27DECB2F2AFE247E911E877A

編輯 proxy.cnf 中的內(nèi)容

[root@HE4 conf]# cat proxy.conf 
[oneproxy]
keepalive = 1
event-threads = 4
proxy-group-policy.2 = test:read-slave
log-file = log/oneproxy.log
pid-file = log/oneproxy.pid
lck-file = log/oneproxy.lck
proxy-auto-readonly = 1
proxy-forward-clientip = 1
proxy-trans-debug = 1
proxy-address = :3307
mysql-version = 5.7.16
proxy-master-addresses.1 = 192.168.1.250:3306@test
proxy-slave-addresses.2 = 192.168.1.248:3306@test
proxy-slave-addresses.3 = 192.168.1.249:3306@test
proxy-user-list = sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test
proxy-user-group = test:sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test
proxy-part-template = conf/template.txt
proxy-part-tables.1 = conf/part.txt
proxy-part-tables.2 = conf/part2.txt
proxy-part-tables.3 = conf/cust1.txt
proxy-charset = utf8_bin
proxy-secure-client = 127.0.0.1
# proxy-license = 32C54560E06EFF3E
proxy-httpserver = :8080
proxy-httptitle = OneProxy Monitor

Part4: 啟動(dòng) Oneproxy

[root@HE4 oneproxy]# ./demo.sh
[root@HE4 oneproxy]# ./oneproxy.service restart
Stopping OneProxy ... [ OK ]
Starting OneProxy ... [ OK ]

測(cè)試

Part1:Oneproxy 狀態(tài)校驗(yàn)

瀏覽器打開 192.168.1.251:8080 端口能夠看到 oneproxy 的管理頁面

這里可以看到主從的各種狀態(tài)信息。

Part2: 負(fù)載均衡與讀寫分離校驗(yàn)

[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e select @@hostname; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE1 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e select @@hostname; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE2 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e select @@hostname; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE1 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e select @@hostname; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE2 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e select @@hostname; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE1 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e begin;select @@hostname;commit; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE3 |
+------------+
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h292.168.1.251 -P3307 -e begin;select @@hostname;commit; 
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| HE3 |
+------------+

可以看到 HE1,HE2 兩個(gè) slave 作為負(fù)載均衡沒有問題,HE3 作為寫服務(wù)器也沒有問題。

關(guān)于“如何在 OneProxy 的基礎(chǔ)上實(shí)行 MySQL 讀寫分離與負(fù)載均衡”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計(jì)5007字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 甘洛县| 文成县| 常州市| 玛曲县| 乐山市| 高陵县| 隆德县| 宝应县| 盱眙县| 招远市| 英山县| 平潭县| 历史| 西畴县| 于都县| 洪洞县| 涟源市| 滦南县| 芒康县| 凌源市| 云安县| 农安县| 新郑市| 那曲县| 阿克| 平顶山市| 石景山区| 呼伦贝尔市| 昭平县| 新龙县| 崇仁县| 罗山县| 扶沟县| 无为县| 偃师市| 兴和县| 疏附县| 宣化县| 临夏县| 县级市| 桦南县|