Load Balancer
Cách hiểu bằng lời của tôi
Load Balancer phân phối request qua nhiều instance để đạt hai mục tiêu: chia tải và redundancy. Khi traffic tăng, ta thêm instance; load balancer quyết định instance nào nhận request. Khi một instance unhealthy, traffic được chuyển đi nơi khác để giảm downtime.
Layer 4 và Layer 7
- Layer 4 nhìn ở tầng transport, dựa vào IP/port. Nó đơn giản, nhanh, ít phải hiểu payload.
- Layer 7 nhìn ở tầng application như HTTP path, header, cookie. Nó route thông minh hơn, có thể cache, terminate TLS, rewrite URL, nhưng chi phí xử lý cao hơn.
Thuật toán phân phối
- Round robin: đơn giản, chia đều theo lượt.
- Least connections: ưu tiên server đang ít kết nối hơn.
- Weighted routing: server mạnh hơn nhận nhiều traffic hơn.
- Sticky session: giữ cùng user trên cùng instance, nhưng dễ gây lệch tải và làm state khó scale.
Trade-off cần nhớ
- Load balancer giải quyết bottleneck app server nhưng chính nó cũng cần HA.
- L7 thông minh hơn nhưng tốn CPU/memory hơn L4.
- Sticky session có thể tiện trong ngắn hạn nhưng làm giảm khả năng thay thế instance.