一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 在OneProxy的基礎上實行MySQL讀寫分離與負載均衡

在OneProxy的基礎上實行MySQL讀寫分離與負載均衡

2020-09-27 20:20dbapower Mysql

基于Libevent機制實現,單個實例可以實現25萬的SQL轉發能力,用一個OneProxy節點可以帶動整個MySQL集群,為業務發展貢獻一份力量,下面由小編來為大家簡單說說

簡介

Part1:寫在最前

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

Part2:環境簡介

HE1:192.168.1.248 slave1

HE2:192.168.1.249 slave2

HE3:192.168.1.250 Master

HE4:192.168.1.251 Oneproxy

環境構建

Part1:安裝Oneproxy

?
1
2
3
[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:構建主從環境

本文的架構是一主兩從,HE3作為Master,HE1,HE2作為Slave。主從的構建不是本文的重點,需要的可移步:

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

Part3:配置Oneproxy

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

?
1
2
3
4
5
6
[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時所在的目錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[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=$?
echo
}
stop() {
 echo -n $"Stopping $prog ... "
if [ -e ${ONEPROXY_PID} ]; then
daemon kill -INT $(cat ${ONEPROXY_PID})
 RETVAL=$?
fi
echo
}
restart(){
 stop
sleep 1
 start
}
case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart)
 restart
 ;;
 *)
 echo $"Usage: $0 {start|stop|restart}"
 RETVAL=1
esac
exit $RETVAL

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

進入oneproxy中的bin目錄,使用mysqlpwd對密碼進行加密

?
1
2
3
4
5
6
7
8
9
[root@HE4 oneproxy]# cd bin/
 
[root@HE4 bin]# ls
 
mysqlpwd oneproxy
 
[root@HE4 bin]# ./mysqlpwd MANAGER
 
1C6D087BA5D2607A27DECB2F2AFE247E911E877A

編輯proxy.cnf中的內容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[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:啟動Oneproxy

?
1
2
3
4
5
6
7
[root@HE4 oneproxy]# ./demo.sh
 
[root@HE4 oneproxy]# ./oneproxy.service restart
 
Stopping OneProxy ... [ OK ]
 
Starting OneProxy ... [ OK ]

測試

Part1:Oneproxy狀態校驗

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

在OneProxy的基礎上實行MySQL讀寫分離與負載均衡

這里可以看到主從的各種狀態信息。

Part2:負載均衡與讀寫分離校驗

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.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 -h192.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 -h192.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 -h192.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 -h192.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 -h192.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 -h192.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兩個slave作為負載均衡沒有問題,HE3作為寫服務器也沒有問題。

——總結——

OneProxy配合MySQL實現讀寫分離與負載均衡實驗構建成功,Oneproxy還具有分庫分表功能,今后會進一步研究。由于筆者的水平有限,編寫時間也很倉促,文中難免會出現一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.51cto.com/suifu/1884673

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人天堂官方网站 | 变形金刚第一部 | 亚洲第6页 | 性bbbb妇女激情 | 欧美男男gaygayxxx | 久久久GOGO无码啪啪艺术 | brazzersxxx欧美 | 久久中文字幕综合不卡一二区 | 亚洲精品国产成人99久久 | 学校女性奴sm训练调教 | 小寡妇好紧进去了好大看视频 | 国产一区二区三区免费在线视频 | caoporn超碰最新地址进入 | 男人与雌性宠物交啪啪小说 | 狠狠色婷婷狠狠狠亚洲综合 | 国产精品成人一区二区1 | 欧美成人福利视频 | 天天射天天舔 | 麻豆最新| 欧美午夜视频一区二区三区 | 国产梦呦精品 | 无套大战白嫩乌克兰美女 | 91在线亚洲综合在线 | 男人影院天堂网址 | 我们日本在线观看免费动漫下载 | 无人区大片免费播放器 | 日日爽日日操 | 欧美生活一级片 | 欧美日韩国产亚洲一区二区 | 波多野结衣中文丝袜字幕 | 色图18p | 高清黄色直接看 | 深夜影院深a久久 | 色姑娘色综合 | 精品一区二区高清在线观看 | 国产一级在线观看 | 国内自拍2020 | 99精品久久精品一区二区 | 亚洲国产综合久久精品 | 国产高清在线播放免费观看 | 91精品国产色综合久久不卡蜜 |