load-balancer-determine-request-and-server

Load Balancers II – Determine which servers processes a request

Content Protection by DMCA.com

Trở lại chuỗi bài viết chuyên sâu về Load Balacers và Web Server. Biết về khái niệm và cách mà Load Balancers cân bằng lượng request đến đã là tốt.

Tuy nhiên, request ở máy A sẽ đi tới servers nào khi ta có tới cả 100 servers service nhỏ?.

Để trả lời cho câu hỏi này, hãy cùng nhìn lại chút xíu về Load Balancers Architecture.

Load Balancers
Thông qua sự “điều tiết” của Web Balancers, nhiều Application Servers nhỏ có thể handle một lượng request lớn.

1. Phán định servers

Vấn đề là Application nào sẽ handle request nào?. Ví dụ: client A ở lần request đầu tiên sẽ gửi tới Application Servers A do Load Balancers điều phối.

Gọi là phán định servers vì không thể ở request thứ nhất, Application Servers A xử l. Request thứ hai lại do Application Servers B xử.

Để có phá định chuẩn rằng Servers nào nên xử lý request nào thì ta cần hiểu rõ về Application Servers trước. Đặc điểm chính là Stateless. Vậy Stateless là gì?.

2. Stateless trong Load Balancers

Stateless có thể được hiểu như là không state. Tại sao nói không State?.

State là trạng thái, mỗi request gửi lên Servers đều mang một trạng thái của riêng nó. Tạo mới, cập nhât, xóa bỏ, … Chữ less ở đây mang ý nghĩa Application Servers sẽ không chịu trách nhiệm lưu trữ State của request.

Load Balancers

Đọc tới đây có bạn sẽ hỏi nếu App Servers lưu trữ State thì sao?. Lấy ví dụ luôn.

Giả sử khách hàng A đang có 2 sản phẩm trong giỏ (2 products). Load Balancers ban đầu phán định App Servers 5 sẽ xử lý request này. Do 4 cái còn lại đang busy.

Vậy nếu khách hàng cập nhật giỏ hàng, thêm xóa bỏ, mua mới?. Mọi request liên quan tới giỏ hàng này đều phải thông qua App Servers 5?

Giữ App Servers 5 cho một giỏ hàng thì quá lã lãng phí. Cũng không đảm bảo sự hoạt động trơn tru của Load Balancers. Chính vì vậy, App Servers giữ trong mình nó chữ Stateless.

Không quan tâm tới state đảm bảo cho mọi server có trách nhiệm và chức năng như nhau. Ai rảnh thì vào xử lý request ngay, không cần quan tâm tới state của request được gửi là như thế nào.

3. Scaling

Giữ cho các App Servers tách biệt với state cũng đảm bảo về khả năng Sclaing khi application mở rộng. Các App Servers có thể độc lập hoạt động mà không cần quan tâm tới state được gửi lên từ request như thế nào.

Load Balancers

Về scalable trong web application thì có thể đọc qua bài viết này. Tìm hiểu thêm về Horizontal và Vertical Scaling.

4. Tổng kết

Quay lại câu hỏi ngay từ ban đầu. Với kiến trúc Distributed Server và Distributed Database. Phán định server nào xử lý request như thế nào?

Câu trả lời là phán định do Load Balancers chỉ định tùy thuộc tình trạng busy hiện tại của các Server khác. Về bản chất thì các App Servers có chức năng tương tự nhau, có thể hoạt động độc lập với nhau.

5. Tham khảo

Thank for reading – Have a nice yearend – Happy coding!

Anh em nếu muốn tìm hiểu sâu hơn có thể vào ghé Udefree để lựa cho mình các khoa học miễn phí cũng như trả phí

Có gì thắc mắc cứ comment đây nha! - Please feel free to comment here!

Kiên Nguyễn

👋 HEY THERE! 👋. My pleasure when you're here to read the article. Please feel free to comment, send a message or just want to say HELLO. Thank you, from bottom of my heart ❤️❤️❤️. Visit my portfolio: https://kieblog.com

Mời tui ly cà phê

Like page để không bỏ lỡ bài viết mới
Facebook Pagelike Widget
Bài viết mới
Lưu trữ