Câu hỏi phỏng vấn Node.js
Câu hỏi

Làm thế nào bạn có thể có một biến toàn cục giữa tất cả các worker được clustered trong Node.js?

Câu trả lời

Trong Node.js, mỗi worker trong một cluster chạy trong một tiến trình riêng biệt; do đó, chúng không chia sẻ trực tiếp bộ nhớ hoặc biến với nhau. Tuy nhiên, có một số cách để chia sẻ dữ liệu hoặc trạng thái giữa các worker:

  1. Sử dụng Biến Môi Trường (Environment Variables) khi Tạo Worker: Khi tạo một worker mới bằng cluster.fork(), bạn có thể truyền các biến môi trường tùy chỉnh vào worker. Các biến này có thể được sử dụng như các biến toàn cục giữa các worker. Tuy nhiên, phương pháp này chỉ phù hợp cho dữ liệu không thay đổi sau khi worker được tạo, vì mỗi worker sẽ có bản sao riêng của biến môi trường và thay đổi trong một worker sẽ không ảnh hưởng đến các worker khác.

    // Trên master
    cluster.fork({ GLOBAL_VAR: 'value' });
    
    // Trong worker
    const globalVar = process.env.GLOBAL_VAR;
  2. Sử dụng Cơ Sở Dữ Liệu hoặc Hệ Thống Lưu Trữ Bên Ngoài: Một cách khác để chia sẻ dữ liệu giữa các worker là sử dụng một cơ sở dữ liệu hoặc hệ thống lưu trữ bên ngoài như Redis, MongoDB, hoặc bất kỳ hệ thống lưu trữ nào khác. Các worker có thể đọc và ghi vào cơ s...

Bạn cần đăng nhập để xem
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

N-API trong Node.js là gì?

middle

Mục đích của lệnh pm2 save là gì?

senior

Khi nào nên sử dụng code Synchronous và code Asynchronous trong Node.js?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào