MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để anh ấy xử lý các yêu cầu ưu tiên trong express / nodejs?

Trong node.js, chỉ có một yêu cầu thực sự chạy tại một thời điểm (trình thông dịch Javascript là một luồng) cho đến khi bạn thực hiện một số loại hoạt động không đồng bộ trong mã gốc và sau đó một yêu cầu khác bắt đầu chạy trong khi yêu cầu kia đang đợi I / O . Nếu có một số tài nguyên hạn chế mà tất cả các yêu cầu đều theo đuổi, thì đó chỉ là một cuộc chạy đua xem yêu cầu nào đủ xa thông qua mã của bạn để lấy tài nguyên. Nếu bạn phân cụm máy chủ của mình để tăng khả năng mở rộng, thì mỗi cụm chạy một chuỗi Javascript.

Nếu bạn thực hiện mỗi yêu cầu đến phải chờ trong một hàng đợi cho đến khi tất cả các yêu cầu khác đến trước khi nó được thực hiện hoàn toàn (điều gì đó có thể được thực hiện), thì bạn sẽ phá hủy nghiêm trọng khả năng mở rộng của máy chủ node.js của mình và hầu hết thời gian điều đó sẽ xảy ra đang ở chế độ chờ đợi một số thao tác I / O được thực hiện nên có vẻ như đó không phải là thiết kế chính xác.

Lược đồ thông thường ở đây là chỉ cho phép yêu cầu đầu tiên đi qua để yêu cầu tài nguyên có nó (mặc dù nhiều tài nguyên có thể đang chạy cùng một lúc). Liệu đây có phải là yêu cầu lần đầu tiên đến máy chủ của bạn hay không thì không ai biết được, nhưng nó sẽ kết thúc và cộng đồng người dùng khó có thể biết liệu nó có bị tắt đi vài mili giây chỉ do sự khác biệt trong tốc độ xử lý của hai yêu cầu.

Bạn sẽ phải đảm bảo mã truy cập tài nguyên được chia sẻ (như cơ sở dữ liệu) an toàn cho đồng thời và không đưa ra bất kỳ giả định rắc rối nào về dữ liệu được chia sẻ.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB không thể phân tích cú pháp truy vấn (2dsphere):hai điều kiện

  2. xác thực pymongo không thành công trong tập lệnh python

  3. Tạo chỉ mục văn bản đa ngôn ngữ trong MongoDB

  4. Làm cách nào để sử dụng C # để chèn tài liệu vào các tài liệu nhúng hiện có?

  5. làm cách nào để kích hoạt mongodb cli khá in? - db.col.find (). pretty () không hoạt động