Tôi mới sử dụng Node.js và hiện đang đặt câu hỏi về độ tin cậy của nó.Độ tin cậy của Node.js cho ứng dụng lớn
Dựa trên những gì tôi đã thấy cho đến nay, có vẻ như là một lỗ hổng lớn: bất kỳ lỗi/ngoại lệ vô tình nào gặp sự cố máy chủ. Chắc chắn, bạn có thể cố gắng chống đạn mã của bạn hoặc đặt thử/nắm bắt trong các lĩnh vực quan trọng, nhưng sẽ hầu như luôn luôn có lỗi mà trượt qua vết nứt. Và có vẻ như nguy hiểm nếu một yêu cầu có vấn đề có thể ảnh hưởng đến tất cả các yêu cầu khác. Có 2 cách giải quyết mà tôi đã tìm thấy:
Sử dụng daemon hoặc mô-đun như forever để tự động khởi động lại máy chủ khi gặp sự cố. Điều tôi không thích về điều này là máy chủ vẫn còn xuống trong một hoặc hai giây (đối với một trang web lớn, có thể là hàng trăm (hàng nghìn?) Yêu cầu).
Bắt ngoại lệ không bắt buộc bằng cách sử dụng
process.on('uncaughtException')
. Vấn đề với cách tiếp cận này (theo như tôi biết) là không có cách nào để có được một tham chiếu đến yêu cầu gây ra ngoại lệ. Vì vậy, yêu cầu cụ thể đó là treo trái (người dùng thấy chỉ báo tải cho đến khi hết thời gian chờ). Nhưng ít nhất trong trường hợp này, các yêu cầu không có vấn đề khác vẫn có thể được xử lý.
Có thể quảng cáo chiêu hàng kỳ cựu nào của Node.js không?
Tôi không mua một chút về "hàng trăm nghìn" yêu cầu bị mất trên một trang web lớn. Một trang web lớn sẽ được thu nhỏ theo chiều ngang nên một quá trình đơn lẻ sẽ chỉ ảnh hưởng đến một phần nhỏ trong tổng lưu lượng truy cập. – Kevin
các bản sao có thể có: http://stackoverflow.com/questions/7310521/node-js-best-practice-exception-handling http://stackoverflow.com/questions/9181027/node-js-doesnt-display-entire- error-message-on-uncaughtexception-is-it-possibl mặc dù tôi có vẻ hiểu câu trả lời được chấp nhận là không thỏa mãn? – Dirk
@Kevin có thể vẫn nằm trong hàng trăm hoặc bất kỳ cách nào đơn giản là không thể chấp nhận được –