system-design

Load Balancing 101: Chiến lược cân bằng tải L4 vs L7

Cân bằng tải là chìa khóa để scaling hệ thống. So sánh sự khác biệt giữa Layer 4 (Transport) và Layer 7 (Application) Load Balancing.

newspaper

Lê Hoàng Nam Nguồn

NGINX Blog 15 tháng 1, 2024
Load Balancing 101: Chiến lược cân bằng tải L4 vs L7
Featured Image

Khi xây dựng các hệ thống web quy mô lớn, Load Balancer (LB) đóng vai trò như một “cảnh sát giao thông”, điều tiết lưu lượng request từ người dùng đến các server backend, đảm bảo không có server nào bị quá tải.

Hai chiến lược phổ biến nhất là Layer 4 (L4)Layer 7 (L7) Load Balancing, dựa trên mô hình OSI. Vậy chúng khác nhau như thế nào?

Layer 4 Load Balancing (Transport Layer)

L4 LB hoạt động ở tầng giao vận (Transport Layer), chủ yếu dựa trên giao thức TCP/UDP.

  • Cơ chế: Nó nhìn vào IP addressPort của gói tin để định tuyến. Nó không “mở” gói tin ra để xem nội dung bên trong.
  • Ưu điểm:
    • Tốc độ cực nhanh: Vì không cần xử lý nội dung gói tin.
    • Bảo mật: Không cần giải mã SSL/TLS (nếu cấu hình passthrough).
    • Đơn giản: Dễ cấu hình và vận hành.
  • Nhược điểm:
    • Không thông minh. Không thể định tuyến dựa trên URL, Cookie hay Header.
  • Ví dụ: AWS Network Load Balancer (NLB), HAProxy (mode TCP).

Layer 7 Load Balancing (Application Layer)

L7 LB hoạt động ở tầng ứng dụng (Application Layer), hiểu được giao thức HTTP/HTTPS.

  • Cơ chế: Nó giải mã gói tin, đọc nội dung Header, URL, Cookies, và Payload để đưa ra quyết định định tuyến.
  • Ưu điểm:
    • Thông minh (Smart Routing): Có thể điều hướng /api về Server A, /images về Server B.
    • Caching: Có thể cache nội dung tĩnh ngay tại LB.
    • Security: Có thể chặn SQL Injection, XSS (WAF integration).
  • Nhược điểm:
    • Chậm hơn L4: Vì tốn CPU để giải mã và đọc nội dung gói tin.
    • Phức tạp: Cấu hình rắc rối hơn, cần quản lý SSL Certificate.
  • Ví dụ: NGINX, AWS Application Load Balancer (ALB), Traefik.

Khi nào dùng loại nào?

Chọn L4 khi:

  • Bạn cần hiệu năng tối đa (Low latency, High throughput).
  • Bạn tải cân bằng cho các giao thức không phải HTTP (như Database, Mail Server, MQTT).
  • Bạn muốn Backend tự xử lý SSL Termination.

Chọn L7 khi:

  • Bạn xây dựng cấu trúc Microservices (cần routing theo path).
  • Bạn cần các tính năng nâng cao như Rate Limiting, Authentication, WAF.
  • Bạn muốn tối ưu hóa SSL Termination tập trung tại Gateway.

Tổng kết

Trong thực tế, các hệ thống lớn thường kết hợp cả hai: Một lớp L4 (như LVS hoặc Hardware LB) ở ngoài cùng để đón traffic khổng lồ, sau đó chuyển vào cụm L7 (như NGINX/K8s Ingress) để xử lý logic định tuyến phức tạp.

Hiểu rõ công cụ mình đang dùng sẽ giúp bạn thiết kế hệ thống vừa mạnh mẽ, vừa tiết kiệm chi phí.


Tổng hợp kiến thức từ NGINX và AWS Architecture.

history_edu Góc học tập & giải trí

Thử Thách Kiến Thức Lịch Sử?

Khám phá hàng trăm câu hỏi trắc nghiệm lịch sử thú vị tại HistoQuiz. Vừa học vừa chơi, nâng cao kiến thức ngay hôm nay!

Chơi Ngay arrow_forward
public

NGINX Blog

Nhà xuất bản gốc

Bài viết này được trích dẫn và tổng hợp từ NGINX Blog, nơi cung cấp các bài viết và tài liệu chất lượng cao.