Bộ cân bằng tải có thể phân phối chính xác lưu lượng truy cập cho các trường hợp kích thước khác nhau


10

Chỉ cần nhìn vào Cân bằng tải đàn hồi. Theo tôi hiểu thì họ chỉ thực hiện một vòng, phân phối đều các kết nối đến các máy chủ phía sau họ. Vì vậy, điều gì xảy ra nếu bạn có các trường hợp kích thước khác nhau đằng sau ELB? Nó có gửi nhiều kết nối hơn tới phiên bản lớn hơn hay nó tiếp tục phân phối đều các kết nối, điều đó có nghĩa là bạn thực sự không nên sử dụng các thể hiện kích thước khác nhau.

Câu trả lời:


15

Theo tôi hiểu thì họ chỉ thực hiện một vòng, phân phối đều các kết nối đến các máy chủ phía sau họ.

Loại này, nhưng không hoàn toàn tôi nghĩ - thật không may, tài liệu định tuyến ELB của Amazon không tồn tại, vì vậy người ta cần phải lắp ráp một số phần để rút ra kết luận. Đây là đoạn duy nhất từ Hướng dẫn dành cho nhà phát triển Cân bằng tải đàn hồi mà tôi biết, xem phần Phiên dính trong Tổng quan về Cân bằng tải đàn hồi :

Theo mặc định, bộ cân bằng tải định tuyến từng yêu cầu một cách độc lập đến phiên bản ứng dụng với tải nhỏ nhất . Tuy nhiên, bạn có thể sử dụng tính năng phiên dính (còn được gọi là ái lực phiên), cho phép bộ cân bằng tải liên kết phiên của người dùng với một phiên bản ứng dụng cụ thể. Điều này đảm bảo rằng tất cả các yêu cầu đến từ người dùng trong phiên sẽ được gửi đến cùng một ứng dụng. [nhấn mạnh của tôi]

Bây giờ tải nhỏ nhất có nghĩa là gì? Một lần nữa, lời giải thích duy nhất tôi biết là phản ứng của đội AWS hơi mơ hồ từ năm 2009 đối với Chiến lược ELB :

ELB lỏng lẻo theo dõi xem có bao nhiêu yêu cầu (hoặc kết nối trong trường hợp TCP) xuất hiện ở mỗi trường hợp. Nó không giám sát việc sử dụng tài nguyên (như CPU ​​hoặc bộ nhớ) ở mỗi trường hợp. ELB hiện sẽ quay vòng trong số những trường hợp mà họ tin rằng có ít yêu cầu nổi bật nhất. [nhấn mạnh của tôi]

Điều này rất có ý nghĩa liên quan đến kiến ​​trúc hệ thống của họ và các trường hợp sử dụng được giải quyết, nhưng rõ ràng không cung cấp tính minh bạch và / hoặc kiểm soát định tuyến mà bạn có thể muốn hoặc cần cho các kịch bản HA nâng cao.

Xin lưu ý rằng, tùy thuộc vào diễn giải, điều này có thể hoặc không bị mâu thuẫn một chút bởi phản ứng của nhóm AWS gần đây hơn đối với Cân bằng tải đàn hồi - Chính sách phân phối tải :

Trò chơi vòng tròn có hiệu lực nhưng các phiên khách không phải lúc nào cũng tôn trọng bộ đệm của DNS hoặc DNS để bạn có thể nhận được kết quả sai lệch và phân phối yêu cầu không đồng đều. ELB không có hiệu lực những trường hợp lưu lượng / yêu cầu đã nhận được cho đến nay trong các quyết định định tuyến lưu lượng. [nhấn mạnh của tôi]

Kiểm tra sức khỏe

Tất nhiên, những điều trên được sửa đổi bằng các kiểm tra sức khỏe được minh bạch, minh bạch và có thể kiểm soát được , giúp bạn có một số đòn bẩy để (có thể tạm thời) loại bỏ các trường hợp khỏi việc đưa vào định tuyến ở vị trí đầu tiên, như được tóm tắt trong phản hồi của nhóm AWS đã nói ở trên với ELB Chiến lược cũng vậy:

Bộ cân bằng tải theo dõi sức khỏe của các cá thể của bạn đã đăng ký với bộ cân bằng tải của bạn. Khi bộ cân bằng tải phát hiện sự cố với một cá thể, nó sẽ ngừng phân phối lưu lượng đến nó. Khi cá thể khỏe mạnh trở lại, bộ cân bằng tải khởi động lại phân phối lưu lượng đến nó. Quá trình này cho phép ứng dụng của bạn tự động phản ứng với các trường hợp thất bại mà bạn không cần phải tham gia ngoài việc định cấu hình kiểm tra sức khỏe.

Phần kết luận

Mặc dù chắc chắn là không bình thường, tôi không hiểu tại sao ELB không nên làm việc với một nhóm các loại đối tượng Amazon EC2 khác nhau - Tôi đã không tự mình thử điều này và sẽ khuyên cả hai, Giám sát cân bằng tải của bạn bằng cách sử dụng CloudWatch cũng như giám sát các trường hợp EC2 cá nhân của bạn và tương quan các kết quả để có được cái nhìn sâu sắc và sự tự tin tương ứng vào một thiết lập như vậy cuối cùng.


1
Cảm ơn rất nhiều vì một câu trả lời sâu sắc, chính xác những gì tôi đang tìm kiếm nhưng không thể tìm thấy.
Sean Bannister

1
Từ kinh nghiệm, tôi nói với bạn rằng ELB KHÔNG phân phối lưu lượng tốt với nhóm bao gồm nhiều loại thể hiện.
ubiquitousthey

Bất cứ ai cũng có bất kỳ thông tin nào về Bộ cân bằng tải ứng dụng AWS (ALB) và các loại thể hiện khác nhau?
SomethingOn

1

Dựa trên các tuyên bố được tạo ra cho đến nay, thuật toán phân phối cực kỳ đơn giản.

Mặt trước của ELB thường là nhiều hơn một ví dụ ELB và phân phối là vòng tròn.

Phần cuối (ví dụ của bạn) algo tuyên bố là:

ELB lỏng lẻo theo dõi xem có bao nhiêu yêu cầu (hoặc kết nối trong trường hợp TCP) xuất hiện ở mỗi trường hợp. Nó không giám sát việc sử dụng tài nguyên (như CPU ​​hoặc bộ nhớ) ở mỗi trường hợp. ELB hiện sẽ quay vòng trong số những trường hợp mà họ tin rằng có ít yêu cầu nổi bật nhất.

Điều này sẽ suy ra rằng nếu một phiên bản lớn hơn có ít yêu cầu chưa được xử lý thì lưu lượng truy cập sẽ được chuyển đến chúng nhiều hơn. Không có cách nào để đảm bảo điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.