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.
Được cập nhật: hôm kia lúc 6:52:44 | Lượt xem: 767