[Question] MySQL loadbalancing with HAproxy on CentOS |
25/03/2011 19:50:02 (+0700) | #1 | 233953 |
bumbumndb
Member
|
0 |
|
|
Joined: 23/04/2006 16:52:41
Messages: 10
Offline
|
|
Hi all ,
Mình đang tìmh hiểu về loadbalancing của HAproxy (1.4.13) cho MySQL , đã test và run với mô hình
HTTPserver(apache) > Load balancer (HAprxoy ) > Mysql-node1 ( master ) - Mysql-node2 (master )
giữa 2 Mysql node 1 và 2 là repliacation Master-Master .
########## haproxy.cfg################
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
uid 99
gid 99
daemon
#debug
#quiet
stats socket /tmp/stats
defaults
log global
mode http
#option httplog
option dontlognull
retries 3
#redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen MySQL 0.0.0.0:3306
mode tcp
balance roundrobin
server mysql_node01 node01:3306 check port 9200 inter 5000 rise 3 fall 3
server mysql_node02 node02:3306 check port 9200 inter 5000 rise 3 fall 3
option httpchk
source 192.168.1.195
listen http 192.168.1.195:80
mode http
stats enable
stats uri /haproxy-stats
stats auth admin:admin
option httpclose
option httpchk
###################################
Note:
192.168.1.195 : Loadbalancer
node01 : Mysql master 01
node02 : Mysql master 02
port 9200 là port check mysql status từ loadbalancer đến từng node .
Vấn đề đặt ra ? Nếu triển khai mô hình trên thay vì Master-Master thì chuyển thành Master-Slave
Master : write only
Slave : read only
thì config của HAproxy sẽ như thế nào .
đã đọc guide nhưng chưa biết cách config sau nó tranfer write về Master và read về Slave , mong các bạn giúp đỡ tìm ra lối đi.
http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
Thanks all.
|
|
|
|
|
[Question] MySQL loadbalancing with HAproxy on CentOS |
26/03/2011 10:24:40 (+0700) | #2 | 233980 |
myquartz
Member
|
0 |
|
|
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
|
|
Theo tớ biết thì HAProxy, trừ HTTP, cái khác nó load balance theo connection, ở layer 4 và không quan tâm đến nội dung.
Vì thế nó sẽ không phân biệt được lúc nào là read, lúc nào là write. => không thể load balance kiểu 1 bên read 1 bên write.
Nếu cậu muốn làm vậy, thì không cần HAproxy làm gì. Trong ứng dụng của cậu làm 2 DB Handle, 1 kết nối tới write chỉ chuyên write, 1 kết nối tới read only. Kỹ thuật kiểu này được áp dụng ở 1 số ứng dụng rồi, ví dụ MediaWiki nó có 1 kết nối DB phụ gọi là shadow db, chuyển dùng để read, giảm tải cho DB server chịu trách nhiệm write. |
|
|
|
|
[Question] MySQL loadbalancing with HAproxy on CentOS |
27/03/2011 09:29:36 (+0700) | #3 | 234022 |
bumbumndb
Member
|
0 |
|
|
Joined: 23/04/2006 16:52:41
Messages: 10
Offline
|
|
myquartz wrote:
Theo tớ biết thì HAProxy, trừ HTTP, cái khác nó load balance theo connection, ở layer 4 và không quan tâm đến nội dung.
Vì thế nó sẽ không phân biệt được lúc nào là read, lúc nào là write. => không thể load balance kiểu 1 bên read 1 bên write.
Nếu cậu muốn làm vậy, thì không cần HAproxy làm gì. Trong ứng dụng của cậu làm 2 DB Handle, 1 kết nối tới write chỉ chuyên write, 1 kết nối tới read only. Kỹ thuật kiểu này được áp dụng ở 1 số ứng dụng rồi, ví dụ MediaWiki nó có 1 kết nối DB phụ gọi là shadow db, chuyển dùng để read, giảm tải cho DB server chịu trách nhiệm write.
Thanks bạn , nhưng mình đã xem về hoạt động của HAproxy là ở layer 7 , xin trích dẩn trên trang chủ HAproxy.
Description
[color=brown]HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for web sites crawling under very high loads while needing persistence or Layer7 processing.
Và trong web này http://www.alexwilliams.ca/blog/2009/08/10/using-haproxy-for-mysql-failover-and-redundancy/'
Has an acceptable ratio of reads/writes (i.e: 100:1)
Can separate reads and writes at the application level
P/S : không biết có ai xài qua Mysql-proxy cho môi trường thậ chưa để config Loadbalancing Master-Slave
Thanks for reading .
|
|
|
|
|
|