Một nhà phát triển đang thử nghiệm hệ thống định tuyến giọng nói đã thêm một cơ chế cách ly tạm thời, buộc cuộc gọi tiếp theo phải sử dụng một lộ trình khác trong vòng 300 giây sau khi xảy ra lỗi. Sự điều chỉnh này giúp phần mềm ngừng thử đi thử lại cùng một lộ trình bị lỗi, từ đó giảm thiểu nguy cơ xảy ra sự cố dây chuyền.

Tại sao logic cũ lại là một vấn đề

Bộ định tuyến ban đầu tuân theo một quy tắc cứng nhắc: khi một trạm làm việc đang bận, nó chỉ đơn giản là thử lại chính lộ trình đó. Nếu lộ trình đó liên tục thất bại, hệ thống sẽ ghi lại lỗi nhưng không bao giờ thay đổi hành vi. Trên thực tế, một điểm lỗi duy nhất có thể liên tục chặn các cuộc gọi vì phần mềm cứ lặp đi lặp lại tại cùng một ngõ cụt.

Cơ chế cách ly mới

Bản cập nhật bổ sung ba ràng buộc:

  • Không vĩnh viễn – dấu hiệu cách ly sẽ hết hạn sau một khoảng thời gian ngắn.
  • Không mang tính toàn cục – nó chỉ áp dụng cho lộ trình cụ thể đã bị lỗi, không phải cho mọi lộ trình.
  • Bộ nhớ có giới hạn – hệ thống ghi lại lỗi vào một tệp cục bộ và sẽ xóa bỏ nó ngay khi một lộ trình mới thực hiện thành công.

Khi một nỗ lực truyền tải giọng nói thất bại, bộ định tuyến sẽ ghi một cờ “quarantined” cho lộ trình đó. Trong 300 giây tiếp theo, bất kỳ yêu cầu nào đến cũng sẽ tự động được định tuyến lại sang một lộ trình thay thế. Ngay khi một yêu cầu thực hiện thành công trên một lộ trình khác, cờ này sẽ được xóa bỏ, đảm bảo việc khắc phục không kéo dài quá mức cần thiết.

Lợi ích và sự đánh đổi

Lợi ích chính là khả năng phục hồi: một lỗi tạm thời sẽ không còn kéo sập toàn bộ dịch vụ. Bằng cách giới hạn thời gian cách ly trong năm phút, hệ thống tránh được việc mất dịch vụ kéo dài trong khi vẫn dành cho mạng lưới thời gian để phục hồi.

Cách tiếp cận này cũng tiềm ẩn rủi ro. Một sự cố mạng ngắn có thể kích hoạt chế độ cách ly, buộc các cuộc gọi phải đi qua một lộ trình kém tối ưu hơn, làm tăng độ trễ hoặc chi phí. Nếu lộ trình thay thế cũng bị suy giảm chất lượng, hệ thống có thể nhảy qua lại giữa các lộ trình, gây ra sự mất ổn định. Các kỹ thuật viên vận hành cần có khả năng quan sát các dấu hiệu cách ly để biết liệu việc định tuyến lại là có chủ đích hay là triệu chứng của một vấn đề sâu xa hơn.

Những điều cần theo dõi tiếp theo

  • Chỉ số (Metrics): Theo dõi tần suất và thời gian cách ly để xem liệu khoảng thời gian 300 giây có phù hợp hay không.
  • Phạm vi (Scope): Các đội ngũ có thể thử mở rộng logic này sang các dịch vụ khác vốn đang gặp phải các mô hình thử lại (retry) tĩnh.
  • Tự động hóa (Automation): Thêm các cảnh báo khi một lộ trình liên tục rơi vào trạng thái cách ly để thúc đẩy việc bảo trì chủ động trước khi người dùng nhận thấy vấn đề.

Bài học cốt lõi rất đơn giản: một hệ thống không ghi lại các lỗi gần đây của chính nó sẽ không thể thích nghi với môi trường thay đổi. Bằng cách làm cho lịch sử lỗi trở nên rõ ràng và hành động dựa trên đó—một cách tạm thời—các kỹ sư có thể giữ cho các dịch vụ giọng nói hoạt động trơn tru mà không cần chờ đợi một cuộc thiết kế lại toàn diện.

Nguồn: bài đăng gốc của nhà phát triển trên dev.to.

Tham gia thảo luận: https://t.me/GyaanSetuAi