Cấu hình Loadbalancing 1 cụm Redis sentinel với HA Proxy

0
2133

Xem cả loạt bài về Redis tại đây: https://hoctapit.com/category/linux/redis/

Sau khi đã cài đặt redis replication và sentinel chúng ta sẽ đặt câu hỏi:

Giả dụ cấu hình địa chỉ của con master trong code, nhỡ nó chết, con khác lên làm master thì sao mà code kết nối được đến con mới?

HA proxy sẽ giải quyết việc đó bằng cách Load balancing.

Cài đặt Haproxy:

yum install haproxy

Mở file cấu hình:

vi /etc/haproxy/haproxy.cfg

Thêm vào dưới cùng:

listen redis_6379
    bind 192.168.1.10:6379
    mode tcp
    timeout connect  3h
    timeout server  3h
    timeout client  3h
    option tcp-check
    tcp-check send PING\r\n
    tcp-check expect string +PONG
    tcp-check send info\ replication\r\n
    tcp-check expect string role:master
    tcp-check send QUIT\r\n
    tcp-check expect string +OK
    server gamota-nap-redis1 192.168.1.1:6379 check inter 1s
    server gamota-nap-redis2 192.168.1.2:6379 check inter 1s
    server gamota-nap-redis3 192.168.1.3:6379 check inter 1s

Giải thích sơ qua:

bind 192.168.1.10:6379: IP của con Haproxy, port 6379. Bây giờ bạn sẽ dùng IP và port này để cấu hình trong code. Lưu ý redis dùng nội bộ thôi thì đừng có bind *:6379 bạn nhé

Cấu hình này sẽ check cả 3 con redis, con nào là master nó sẽ đẩy dữ liệu xuống con đó. Dù cho master chết, con khác lên thay nó vẫn sẽ detect được và ghi vào nên không lo.

Restart Haproxy và test thử bằng cách telnet 192.168.1.10 6379, nếu thấy thông là OK.

LEAVE A REPLY

Please enter your comment!
Please enter your name here