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...

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.

    javascript Copy
    // 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...

senior

senior

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

senior

Khi nào không nên sử dụng Node.js?

expert

Node.js thực sự tạo ra bao nhiêu luồng?

senior

Tại sao nên sử dụng Buffer thay vì binary string để xử lý dữ liệu nhị phân?

Bình luận

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

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