Chúng tôi chạy một ứng dụng web phục vụ API web cho số lượng khách hàng ngày càng tăng. Để bắt đầu, các khách hàng thường ở nhà, văn phòng hoặc các mạng không dây khác gửi các tệp tải lên http được chia nhỏ lên API của chúng tôi. Bây giờ chúng tôi đã phân nhánh để xử lý nhiều khách hàng di động hơn. Các tệp từ vài k đến vài hợp đồng biểu diễn, được chia thành các phần nhỏ hơn và được ghép lại trên API của chúng tôi.
Cân bằng tải hiện tại của chúng tôi được thực hiện ở hai lớp, đầu tiên chúng tôi sử dụng DNS vòng tròn để quảng cáo nhiều bản ghi A cho địa chỉ api.company.com của chúng tôi. Tại mỗi IP, chúng tôi lưu trữ Linux LVS: http://www.linuxvirtualserver.org/ , bộ cân bằng tải xem địa chỉ IP nguồn của yêu cầu để xác định máy chủ API nào sẽ kết nối. Các hộp LVS này được cấu hình với nhịp tim để tiếp quản các VIP bên ngoài và IP cổng bên trong từ nhau.
Gần đây, chúng tôi đã thấy hai điều kiện lỗi mới.
Lỗi đầu tiên là nơi khách hàng đang dao động hoặc di chuyển từ LVS này sang LVS khác, tải lên giữa. Điều này đến lượt nó làm cho các bộ cân bằng tải của chúng tôi mất dấu kết nối liên tục và gửi lưu lượng truy cập đến một máy chủ API mới, do đó phá vỡ tải lên chunk trên hai hoặc nhiều máy chủ. Mục đích của chúng tôi là dành cho giá trị DNS Round Robin DNS cho api.company.com của chúng tôi (mà chúng tôi đã đặt lúc 1 giờ) để được vinh danh bởi các máy chủ tên bộ đệm lưu trữ hạ lưu, các lớp bộ đệm của hệ điều hành và các lớp ứng dụng khách. Lỗi này xảy ra cho khoảng 15% số lượt tải lên của chúng tôi.
Lỗi thứ hai chúng tôi thấy ít phổ biến hơn. Một khách hàng sẽ bắt đầu lưu lượng truy cập vào hộp LVS và được chuyển đến máy chủ thực A phía sau nó. Sau đó, khách hàng sẽ đến thông qua một địa chỉ IP nguồn mới mà hộp LVS không nhận ra, do đó định tuyến lưu lượng truy cập liên tục đến máy chủ thực B cũng phía sau LVS đó.
Với kiến trúc của chúng tôi như được mô tả trong phần trên, tôi muốn biết trải nghiệm của mọi người với cách tiếp cận tốt hơn sẽ cho phép chúng tôi xử lý từng trường hợp lỗi ở trên một cách duyên dáng hơn?
Chỉnh sửa 5/3/2010:
Điều này trông giống như những gì chúng ta cần. Băm GSLB có trọng số trên địa chỉ IP nguồn.