MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana kami menangani prioritas permintaan di express/nodejs?

Di node.js, hanya satu permintaan yang benar-benar berjalan pada satu waktu (penerjemah Javascript adalah utas tunggal) sampai Anda menekan semacam operasi asinkron dalam kode asli dan kemudian permintaan lain mulai berjalan sementara yang lain menunggu I/O . Jika ada beberapa sumber daya terbatas yang dikejar oleh semua permintaan, itu hanya perlombaan untuk melihat permintaan mana yang cukup jauh melalui kode Anda untuk mendapatkan sumber daya. Jika Anda mengelompokkan server Anda untuk menambah skalabilitas, maka setiap kluster menjalankan satu utas Javascript.

Jika Anda membuat setiap permintaan masuk menunggu dalam antrian sampai semua permintaan lain yang datang sebelum benar-benar selesai (sesuatu yang dapat dilakukan), maka Anda akan sangat merusak skalabilitas server node.js Anda dan sebagian besar waktu itu akan duduk diam menunggu beberapa operasi I/O dilakukan sehingga tampaknya tidak mungkin itu adalah desain yang benar.

Skema yang biasa di sini adalah membiarkan permintaan pertama yang lolos untuk mengklaim sumber daya memilikinya (meskipun beberapa sumber daya dapat berjalan pada saat yang sama). Apakah ini selalu merupakan permintaan yang pertama kali tiba di server Anda atau tidak, tidak akan diketahui, tetapi permintaan tersebut akan ditutup dan komunitas pengguna tidak mungkin mengetahui apakah permintaan tersebut dimatikan beberapa milidetik hanya karena perbedaan dalam kecepatan pemrosesan dua permintaan.

Anda harus memastikan kode Anda yang mengakses sumber daya bersama (seperti database) aman untuk konkurensi dan tidak membuat asumsi yang merepotkan tentang data bersama.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data MongoDB - $eq dalam $project support

  2. Bagaimana cara mendapatkan koleksi dokumen dari kursor mongodb?

  3. kelompokkan berdasarkan tanggal dalam permintaan mogodb tanpa mempertimbangkan waktu

  4. ImportError:Tidak ada modul bernama objectid

  5. cara memperbarui banyak dokumen dengan nilai berbeda