Các yêu cầu: có một giải pháp thực tế hoạt động cho đám mây hoặc bất kỳ loại môi trường nào không có quyền truy cập vào bộ cân bằng tải phần cứng, giao thức BGP và tất cả những thứ đó.
Số yêu cầu thu nhập của ứng dụng là không xác định nhưng phải đủ cao để đáp ứng kỳ vọng tải tăng mà không sợ hãi.
Chúng ta hãy tìm một ứng dụng có tính chất tải tương tự, ví dụ như cửa hàng ghi nhật ký và ứng dụng tìm kiếm. Tôi tìm thấy một .
Những gì họ muốn:
- Cân bằng tải trên các bộ sưu tập
- Cung cấp khả năng chịu lỗi, cho phép chúng tôi tiếp tục nhập dữ liệu nếu một trong những người thu thập chết hoặc đang gặp sự cố
- Quy mô theo chiều ngang với sự tăng trưởng trong khối lượng nhật ký của chúng tôi
Họ đã cố gắng và học được gì về ELB:
- Không hoạt động như mong đợi
- Vấn đề độ trễ do tải tăng
- Không đủ cơ sở giám sát
- Quá nhiều giới hạn (số cổng mở và số giao thức)
Tại sao họ chọn với Route53:
- "Vòng tròn là cân bằng tải khá cơ bản, nhưng nó hoạt động tốt cho chúng tôi từ quan điểm hiệu quả"
- "Chúng tôi tận dụng lợi thế của kiểm tra sức khỏe dự phòng tuyến 53".
- "Nếu có vấn đề với người thu gom, Tuyến 53 sẽ tự động đưa nó ra khỏi dịch vụ; khách hàng của chúng tôi sẽ không thấy bất kỳ tác động nào."
- Không cần khởi động trước với Tuyến 53
Tuyến 53 hóa ra là cách tốt nhất để Loggly tận dụng lợi thế của các nhà sưu tập hiệu suất cao với khối lượng nhật ký khổng lồ, các biến thể không thể đoán trước và tăng trưởng liên tục trong kinh doanh của chúng tôi. Nó phù hợp với mục đích cốt lõi của người thu thập: Để thu thập dữ liệu ở tốc độ đường truyền mạng mà không mất và cho phép chúng tôi hưởng lợi từ tính co giãn của tất cả các dịch vụ AWS chúng tôi sử dụng tại Loggly.
Ví dụ cụ thể đó cho thấy rằng trong một số trường hợp (bộ thu thập nhật ký, dịch vụ quảng cáo hoặc tương tự) bộ cân bằng tải là dự phòng và "giải pháp vòng kiểm tra sức khỏe DNS" thực hiện rất tốt công việc của mình.
Hãy xem AWS nói gì về chuyển đổi dự phòng DNS:
Với DNS Failover, Tuyến 53 có thể phát hiện sự cố ngừng hoạt động của trang web của bạn và chuyển hướng người dùng cuối của bạn đến các vị trí thay thế hoặc sao lưu mà bạn chỉ định. Lộ trình chuyển đổi dự phòng DNS 53 phụ thuộc vào kiểm tra sức khỏe - thường xuyên thực hiện các yêu cầu Internet đến các điểm cuối ứng dụng của bạn từ nhiều địa điểm trên khắp thế giới - để xác định xem mỗi điểm cuối của ứng dụng của bạn lên hay xuống.
Kỹ thuật đó cũng làm cho ELB (không bắt buộc, chỉ cần ghi chú) mạnh mẽ hơn, một lần nữa, nó dựa trên RR + Kiểm tra sức khỏe:
Chuyển đổi dự phòng DNS 53 xử lý tất cả các tình huống lỗi này bằng cách tích hợp với ELB ở hậu trường. Khi được bật, Tuyến 53 sẽ tự động định cấu hình và quản lý kiểm tra sức khỏe cho các nút ELB riêng lẻ.
Bây giờ chúng ta hãy xem cách nó hoạt động đằng sau hậu trường. Câu hỏi rõ ràng là làm thế nào để đối phó với bộ nhớ đệm DNS:
Tuy nhiên, bộ nhớ đệm DNS vẫn có thể là một vấn đề ở đây (xem bài đăng trước của chúng tôi, nơi vấn đề "đuôi dài" được đề cập) nếu tất cả các lớp giữa máy khách của bạn và Tuyến 53 không được tôn trọng. gửi yêu cầu đến một tên miền duy nhất
("http://<unique-id>.<your-domain>")
và xác định tài nguyên ký tự đại diện
Record "*.<your-domain>" to match it.
Algolia đã giới thiệu "chiến lược thử lại máy khách" hoạt động khá tốt nếu máy khách của bạn (JS trong trường hợp của bạn) có thể xử lý việc đó:
Chúng tôi đã kết thúc việc thực hiện chiến lược thử lại cơ bản trong các máy khách API của mình. Mỗi máy khách API được phát triển để có thể truy cập ba máy khác nhau. Ba bản ghi DNS khác nhau được đại diện cho mỗi người dùng: USERIDID-1 .acheolia.io, USERID-2.acheolia.io vàUSERID-3.acheolia.io. Việc thực hiện đầu tiên của chúng tôi là chọn ngẫu nhiên một trong các bản ghi và sau đó thử lại với một bản ghi khác trong trường hợp thất bại.