MySQL Proxy快速实现读写分离以及负载均衡
1. 安装下载已经编译好的安装包,或者预编译安装包均可,在这里,使用预编译版本。 [@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.
1. 安装
下载已经编译好的安装包,或者预编译安装包均可,在这里,使用预编译版本。
[@s1.yejr.com ~]# tar zxf mysql-proxy-0.6.0-linux-rhas4-x86.tar.gz
[@s1.yejr.com ~]# cd mysql-proxy-0.6.0-linux-rhas4-x86
#可以看到有2个目录
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls
sbin share
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv sbin/mysql-proxy /usr/local/sbin/
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# ls share
mysql-proxy tutorial-constants.lua tutorial-packets.lua tutorial-rewrite.lua tutorial-warnings.lua
tutorial-basic.lua tutorial-inject.lua tutorial-query-time.lua tutorial-states.lua
#将lua脚本放到/usr/local/share下,以备他用
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# mv share/mysql-proxy /usr/local/share/
#删除符号连接等垃圾代码
[@s1.yejr.com mysql-proxy-0.6.0-linux-rhas4-x86]# strip /usr/local/sbin/mysql-proxy
2. 启动
编译一下启动管理脚本:
[@s1.yejr.com ~]# vi /etc/init.d/mysql-proxy
#!/bin/sh
export LUA_PATH=/usr/local/share/mysql-proxy/?.lua
mode=$1
if [ -z "$mode" ] ; then
mode="start"
fi
case $mode in
'start')
mysql-proxy --daemon \
--admin-address=:4401 \
--proxy-address=:3307 \
--proxy-backend-addresses=:3306 \
--proxy-read-only-backend-addresses=192.168.133.232:3306 \
--proxy-read-only-backend-addresses=10.10.74.61:3306 \
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua
;;
'stop')
killall mysql-proxy
;;
'restart')
if $0 stop ; then
$0 start
else
echo "retart failed!!!"
exit 1
fi
;;
esac
exit 0
现在解释一下启动脚本:
--daemon 采用daemon方式启动
--admin-address=:4401 指定mysql proxy的管理端口,在这里,表示本机的4401端口
--proxy-address=:3307 指定mysql proxy的监听端口,也可以用 127.0.0.1:3307 表示
--proxy-backend-addresses=:3306 指定mysql主机的端口
--proxy-read-only-backend-addresses=192.168.1.1:3306 指定只读的mysql主机端口
--proxy-read-only-backend-addresses=192.168.1.2:3306 指定另一个只读的mysql主机端口
--proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua 指定lua脚本,在这里,使用的是rw-splitting脚本,用于读写分离
完整的参数可以运行以下命令查看:
mysql-proxy --help-all
运行以下命令启动/停止/重启mysql proxy:
[@s1.yejr.com ~]# /etc/init.d/mysql-proxy start
[@s1.yejr.com ~]# /etc/init.d/mysql-proxy stop
[@s1.yejr.com ~]# /etc/init.d/mysql-proxy restart
3. 试用
[@s1.yejr.com ~]# mysql -h127.0.0.1 -uroot -P3307
mysql> show processlist;
+-------+------+----------------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+------+----------------+------+---------+------+-------+------------------+
| 30052 | root | localhost:9656 | NULL | Query | 0 | NULL | show processlist |
+-------+------+----------------+------+---------+------+-------+------------------+
可以看到,产生了一个新连接。
用sysbench测试一下,看会不会挂掉:
[@s1.yejr.com ~]# sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 \
--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test prepare
[@s1.yejr.com ~]# sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 \
--mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-db=test run
.........
.........
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 23.0387/0.00
还好,没给大家丢脸,,剩下的测试自己完成吧 :)
4. 其他
mysql proxy还可以实现连接池的功能,这在很多LAMP开发中是软肋,因此,有了mysql proxy,就可以不用再担心连接数超限的问题了。
如果使用rw-splitting.lua脚本的话,最好修改以下2个参数的默认值:
min_idle_connections = 1
max_idle_connections = 3
MySQL Proxy 的详细介绍:请点这里
MySQL Proxy 的下载地址:请点这里
相关阅读:
MySQL Proxy读写分离实战
在CentOS 5.2下安装最新的MySQL Proxy
RHEL5.5下MySQL Proxy 安装
mysql proxy、mysql-mmm实现读写分离高可用性

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bagaimana untuk mencapai pemisahan baca dan tulis dalam pangkalan data dalam ReactQuery? Dalam pembangunan front-end moden, pemisahan membaca dan menulis dalam pangkalan data adalah pertimbangan reka bentuk seni bina yang penting. ReactQuery ialah perpustakaan pengurusan negeri yang berkuasa yang boleh mengoptimumkan pemerolehan data dan proses pengurusan aplikasi bahagian hadapan. Artikel ini akan memperkenalkan cara menggunakan ReactQuery untuk mencapai pemisahan baca dan tulis dalam pangkalan data, dan memberikan contoh kod khusus. Konsep teras ReactQuery ialah Query, Mutatio

MySQL ialah salah satu pangkalan data yang paling popular dan digunakan secara meluas dalam aplikasi. Dalam kes konkurensi yang tinggi dan volum data yang besar, disebabkan prestasi concurrency baca dan tulis MySQL yang tidak mencukupi, untuk meningkatkan prestasi concurrency MySQL, pengasingan baca dan tulis telah menjadi penyelesaian yang diperlukan. Sebagai bahasa dinamik yang popular, PHP disepadukan dengan sangat rapat dengan MySQL. Jadi, artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai pemisahan baca dan tulis MySQL.

Bagaimana untuk mengkonfigurasi pemisahan baca-tulis untuk sambungan MySQL? Pangkalan data MySQL ialah salah satu pangkalan data hubungan yang paling biasa digunakan, dan ketersediaan dan prestasi yang tinggi adalah penting untuk laman web dan aplikasi yang besar. Untuk meningkatkan pengimbangan beban dan prestasi pangkalan data, kami boleh mengkonfigurasi pemisahan baca-tulis sambungan MySQL. Pemisahan baca-tulis ialah corak reka bentuk seni bina pangkalan data yang meningkatkan keupayaan pemprosesan serentak pangkalan data dengan memperuntukkan operasi baca dan tulis kepada pelayan pangkalan data yang berbeza. Dengan cara ini kita boleh memanfaatkan sepenuhnya pelbagai pelayan

Sebagai pangkalan data dalam memori berprestasi tinggi, Redis menghadapi senario konkurensi tinggi dalam aplikasi harian. Untuk menampung keperluan ini, Redis menyediakan dua mekanisme penyegerakan tuan-hamba dan pemisahan baca-tulis untuk meningkatkan prestasi dan ketersediaan Redis. Artikel ini akan memperkenalkan secara terperinci prinsip dan pelaksanaan penyegerakan tuan-hamba Redis dan pemisahan baca-tulis. 1. Mekanisme penyegerakan tuan-hamba Redis Mekanisme penyegerakan tuan-hamba Redis boleh menyegerakkan data dari satu pelayan Redis ke pelayan Redis yang lain untuk mencapai sandaran dan pemuatan data.

Kelebihan dan Cabaran Menggunakan PHP untuk Mengasingkan MySQL Baca dan Tulis Apabila skala aplikasi web terus berkembang dan bilangan lawatan meningkat, prestasi membaca dan menulis pangkalan data telah menjadi cabaran utama yang dihadapi oleh pembangun. Untuk menyelesaikan masalah ini, ramai pembangun mula menggunakan teknologi pemisahan baca-tulis MySQL untuk meningkatkan keupayaan pemprosesan pangkalan data. Artikel ini akan meneroka cara menggunakan PHP untuk mencapai pemisahan baca dan tulis MySQL, sambil menganalisis kelebihan dan cabarannya. 1. Kelebihan pemisahan baca-tulis MySQL Pengimbangan beban: dengan memperuntukkan operasi baca dan tulis kepada operasi yang berbeza

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang biasa digunakan dalam aplikasi web berskala besar. Apabila membangunkan aplikasi berskala besar, ia sering berlaku permintaan baca dan tulis terlalu kerap, menyebabkan pangkalan data menjadi terlebih beban dan prestasi menurun. Untuk meningkatkan prestasi MySQL, teknologi pemisahan baca dan tulis boleh digunakan. Pemisahan baca dan tulis merujuk kepada memperuntukkan permintaan baca dan tulis permintaan kepada pelayan MySQL yang berbeza untuk pemprosesan, meningkatkan keupayaan pemprosesan serentak sistem dan kelajuan tindak balas. Khususnya, pembangun dengan banyak operasi baca boleh memperuntukkan operasi baca untuk membaca

Cara menggunakan replikasi tuan-hamba MySQL untuk melaksanakan seni bina pemisahan baca-tulis Dalam aplikasi web tradisional, operasi baca dan tulis biasanya disambungkan ke pelayan pangkalan data yang sama. Apabila aplikasi membangun dan volum akses meningkat, seni bina ini boleh membawa kepada kesesakan prestasi pangkalan data dengan mudah. Untuk menyelesaikan masalah ini, replikasi tuan-hamba MySQL boleh digunakan untuk melaksanakan seni bina pemisahan baca-tulis. Artikel ini akan memperkenalkan cara menggunakan replikasi tuan-hamba MySQL untuk mencapai pemisahan baca-tulis, dan menyediakan contoh kod yang sepadan. Penyediaan persekitaran Mula-mula, pastikan anda telah memasang

Apakah teknik untuk mempelajari pemisahan baca-tulis dan pengimbangan beban MySQL? MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan yang digunakan secara meluas dalam pelbagai aplikasi web dan sistem peringkat perusahaan. Memandangkan skala aplikasi terus meningkat, beban baca dan tulis pada pangkalan data menjadi lebih berat dan lebih berat Untuk meningkatkan prestasi dan kebolehskalaan pangkalan data, pengasingan baca dan tulis dan pengimbangan beban telah menjadi cara teknikal yang diperlukan. Pengasingan baca dan tulis merujuk kepada pengasingan operasi baca dan tulis kepada pelayan MySQL yang berbeza untuk meningkatkan kecekapan membaca dan kapasiti pangkalan data. Pengimbangan beban merujuk kepada bilangan
