Tôi đã chạy failover DNS RR trên một trang web sản xuất vừa phải nhưng bị buôn bán nghiêm trọng (qua hai khu vực địa lý) trong nhiều năm.
Nó hoạt động tốt, nhưng có ít nhất ba sự tinh tế tôi đã học được một cách khó khăn.
1) Trình duyệt sẽ chuyển từ IP không hoạt động sang IP hoạt động sau 30 giây (lần cuối tôi kiểm tra) nếu cả hai được coi là hoạt động trong bất kỳ DNS nào được lưu trong bộ nhớ cache có sẵn cho khách hàng của bạn. Đây là một điều tốt.
Nhưng việc "một nửa" người dùng của bạn đợi 30 giây là không thể chấp nhận được, vì vậy bạn có thể muốn cập nhật các bản ghi TTL của mình trong vài phút, không phải vài ngày hoặc vài tuần để trong trường hợp mất điện, bạn có thể nhanh chóng gỡ bỏ máy chủ xuống từ DNS của bạn. Những người khác đã ám chỉ điều này trong phản ứng của họ.
2) Nếu một trong những máy chủ tên của bạn (hoặc một trong hai khu vực địa lý của bạn) hoàn toàn phục vụ tên miền vòng tròn của bạn và nếu một trong số chúng bị hỏng, tôi mơ hồ nhớ lại bạn có thể gặp phải các vấn đề khác khi cố gắng loại bỏ điều đó máy chủ tên bị giảm từ DNS nếu bạn chưa thiết lập / hết hạn sử dụng cho máy chủ tên của bạn ở một giá trị đủ thấp. Tôi có thể có các chi tiết kỹ thuật sai ở đây, nhưng có nhiều hơn một cài đặt TTL mà bạn cần có để thực sự bảo vệ chống lại các điểm thất bại duy nhất.
3) Nếu bạn xuất bản API web, dịch vụ REST, v.v., những dịch vụ này thường không được trình duyệt gọi, và do đó, theo tôi, chuyển đổi dự phòng DNS bắt đầu hiển thị các lỗ hổng thực sự. Đây có thể là lý do tại sao một số người nói, như bạn nói "nó không được khuyến khích". Đây là lý do tại sao tôi nói vậy. Đầu tiên, các ứng dụng tiêu thụ các URL đó thường không phải là trình duyệt, vì vậy chúng thiếu các thuộc tính / logic chuyển đổi dự phòng 30 giây của các trình duyệt phổ biến. Thứ hai, mục nhập DNS thứ hai có được gọi hay thậm chí DNS được thăm dò lại hay không phụ thuộc rất nhiều vào chi tiết lập trình cấp thấp của các thư viện mạng trong các ngôn ngữ lập trình được sử dụng bởi các máy khách API / REST này, cộng với chính xác cách chúng được gọi bởi ứng dụng khách API / REST. (Dưới nắp của chúng, thư viện có gọi get_addr không và khi nào? Nếu ổ cắm bị treo hoặc đóng, ứng dụng có mở lại ổ cắm mới không? Có logic nào hết thời gian không? V.v.)
Đó là giá rẻ, được thử nghiệm tốt và "chủ yếu là hoạt động". Vì vậy, như với hầu hết mọi thứ, số dặm của bạn có thể thay đổi.