0
0
Lập trình
TT

Tối Ưu Tính Khả Dụng Với Kết Hợp Load Balancer Và Database Replication

Đăng vào 4 ngày trước

• 3 phút đọc

Tối Ưu Tính Khả Dụng Với Kết Hợp Load Balancer Và Database Replication

Trong các hệ thống hiện đại, việc đảm bảo tính khả dụng cao (High Availability) là một trong những mục tiêu quan trọng nhất. Một cách hiệu quả để đạt được điều này là kết hợp Load BalancerDatabase Replication. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về cách thức hoạt động của hệ thống này và những điều cần lưu ý khi triển khai.

Luồng Hoạt Động Của Hệ Thống

Khi người dùng muốn truy cập trang web, quá trình diễn ra như sau:

  1. Người dùng sẽ truy cập tên miền và hệ thống DNS sẽ phân giải tên miền đó thành địa chỉ IP.
  2. Địa chỉ IP này sẽ dẫn đến Load Balancer, một thành phần quan trọng giúp phân phối đều lưu lượng truy cập đến các Web Server hoạt động phía sau.
  3. Khi người dùng thực hiện các thao tác ghi dữ liệu (INSERT, UPDATE, DELETE), các Web Server sẽ kết nối với Master Database (DB) để thực hiện.
  4. Đối với các thao tác đọc dữ liệu (SELECT), Web Server sẽ kết nối với các Slave Database.

Trường Hợp Slave DB Bị Down

Nếu xảy ra tình huống không may, hệ thống chỉ có 1 Slave DB và nó bị down, thì các thao tác đọc dữ liệu sẽ ​được chuyển tạm thời về Master DB. Sau khi khắc phục xong sự cố, một Slave DB mới có thể được cấu hình, sao chép dữ liệu từ Master DB và tiếp tục thực hiện các thao tác đọc dữ liệu.

Tầm Quan Trọng Của Nhiều Slave DB

Việc mở rộng hệ thống với nhiều Slave DB là điều cần thiết để nâng cao khả năng chịu đựng lỗi. Nếu một Slave DB gặp sự cố, các thao tác đọc dữ liệu có thể dễ dàng chuyển hướng tới các Slave DB còn lại đang hoạt động, từ đó đảm bảo tính liên tục của dịch vụ. Việc xác định số lượng Slave DB cần thiết phụ thuộc vào nhiều yếu tố như lưu lượng truy cập và tài nguyên hệ thống của từng dự án.

Xử Lý Trường Hợp Master DB Bị Down

Khi Master DB gặp sự cố và bị down, hệ thống sẽ tự động chọn một trong các Slave DB để làm Master DB mới. Tất cả các thao tác ghi dữ liệu sau đó sẽ được thực hiện tại Master DB mới này. Trong trường hợp cần thiết, một Slave DB mới sẽ được cấu hình để thay thế Slave DB đã down và sao chép dữ liệu từ Master DB.

Thực Tế Triển Khai

Trong môi trường thực tế, việc chọn một Slave DB để trở thành Master DB mới không phải lúc nào cũng đơn giản. Bởi dữ liệu của Slave DB được chọn có thể không đủ cập nhật so với Master DB cũ. Do đó, việc khôi phục dữ liệu có thể cần thực hiện qua các script khôi phục dữ liệu để đảm bảo tính chính xác và đầy đủ.

Mặc dù có nhiều phương pháp replication khác như sử dụng nhiều Master DB (multi-masters) hay Circular replication, việc triển khai chúng thường phức tạp hơn.

Kết Luận

Việc áp dụng Load Balancer và Database Replication là một giải pháp hiệu quả để nâng cao tính khả dụng của hệ thống. Thông qua việc thiết kế hợp lý và xây dựng kiến trúc hệ thống vững chắc, chúng ta có thể giảm thiểu rủi ro và đảm bảo hoạt động liên tục của các dịch vụ cung cấp.

Đừng quên tham khảo thêm chuỗi bài viết trong series "Thiết Kế Hệ Thống" trên blog của mình để có thêm kiến thức hữu ích. Hẹn gặp lại các bạn trong những bài viết tiếp theo!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào