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

middle

fork trong Node.js là gì?

expert

Làm thế nào để triển khai giao tiếp giữa các tiến trình khi sử dụng module cluster trong Node.js?

middle

express.json()express.urlencoded() trong Express.js là gì?

Bình luận

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

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