🤯 Cụm từ "sập server" chắc hẳn đã rất quen thuộc đối với nhiều bạn, kể cả những bạn mới vào nghề như học sinh, sinh viên. Có lẽ bạn đã từng nghe đến hoặc đọc qua trên các blog, xem video trên YouTube hay TikTok nói về vấn đề này.
Gần đây, khoảng 1 - 2 tháng trước, cộng đồng mạng đã một phen xôn xao khi Facebook gặp sự cố sập server. Trong lúc đó, Zalo cũng đã phải đối phó với hàng loạt người dùng lo lắng.
Sự thực, bất kỳ hệ thống nào, dù lớn hay nhỏ, cũng sẽ có những lúc gặp phải sự cố. Những sự cố này có thể kéo dài từ vài phút đến vài giờ. Thậm chí, có thể gây mất mát dữ liệu hoặc thậm chí không còn database.
Tuy nhiên, đừng coi đây là chuyện bình thường nhé. Bởi vì các công ty công nghệ lớn đều có hợp đồng cam kết chất lượng dịch vụ (Service Level Agreement - SLA).
Ví dụ, một công ty có thể cam kết đạt High Availability đến 99.95%, tức là:
- Trong 1 tháng chỉ được phép sập khoảng 22 phút.
- Trong 1 năm chỉ được phép sập khoảng 4.38 giờ.
Nếu thời gian server bị sập vượt mức này, công ty sẽ mất uy tín và có thể phải bồi thường. Dù lý thuyết là như vậy, nhưng nhiều công ty thực tế lại không thực hiện điều này.
🥵 Một Trong Những Nguyên Nhân Gây Ra Sập Server
Khi hệ thống được triển khai trên nhiều server, đôi khi sẽ có một server bị quá tải, dẫn đến sự cố. Nguyên nhân chính là do nhiều request dồn vào một server trong khi những server khác lại không được tận dụng.
Để khắc phục vấn đề này, các dự án thường sử dụng load balancer, một bộ công cụ giúp phân phối các request đến các server một cách đều đặn. Điều này giúp tối ưu hóa tài nguyên và cải thiện hiệu suất của hệ thống.
🔑 Cách Hoạt Động Của Load Balancer
Load balancer sẽ đứng giữa người dùng và các server. Thay vì kết nối trực tiếp tới các server, người dùng sẽ kết nối thông qua địa chỉ public IP của load balancer. Kết nối giữa load balancer và các server sẽ sử dụng private IP để tăng cường bảo mật.
Private IP chỉ có thể truy cập giữa các máy chủ trong cùng một mạng. Ví dụ, các máy tính trong một mạng nội bộ có thể kết nối nhau, nhưng máy của bạn ở bên ngoài thì không thể.
Khi có request được gửi đến, load balancer sẽ phân phối đều đến các server.
- Nếu một server bị sập, tất cả request sẽ được chuyển đến server còn lại, duy trì tính sẵn sàng cao cho hệ thống.
- Nếu lưu lượng truy cập tăng đột biến, bạn chỉ cần thêm server mới, và load balancer sẽ tự động phân phối request.
Đương nhiên để triển khai hiệu quả, dự án cần thiết lập hệ thống giám sát và thông báo để cảnh báo sớm trước khi xảy ra sự cố.
Lời Nhắn
Hy vọng bài viết này giúp bạn có thêm thông tin về "sập server" và cách hoạt động của load balancer. Sập server có thể do nhiều nguyên nhân khác nhau và có nhiều giải pháp phòng ngừa như backup dữ liệu định kỳ, kiểm tra tải hệ thống và thiết lập hệ thống giám sát.
Nếu bạn muốn khám phá thêm nhiều nội dung về vấn đề này, vui lòng để lại ý kiến bên dưới để chúng ta cùng bàn luận trong bài viết tiếp theo nhé!
Theo dõi mình trên Facebook "CLB Lập trình - THPT Ngọc Tảo" hoặc kênh Youtube "Tờ Mờ Sáng học Lập trình" để cùng nhau chia sẻ kiến thức công nghệ và lập trình miễn phí nhé!
Facebook CLB Lập trình - THPT Ngọc Tảo: https://www.facebook.com/clb.it.ngoctao/
Youtube Tờ Mờ Sáng học Lập trình: https://www.youtube.com/@tmsangdev
Hẹn gặp lại 👋
Bạn Có Thể Đọc Thêm
Clean Architecture: A Craftsman’s Guide to Software Structure and Design - Robert C. Martin
Designing Data – Insensitive applications - Martin Kleppmann
System Analysis and Design - Alan Dennis, Barbara Haley Wixom, Roberta M. Roth
System Design Interview - Alex Xu
Modern Systems Analysis and Design - Joseph Valacich, Joey George
Head First Design Patterns - Eric Freeman, Elisabeth Robson
source: viblo