Saya telah membaca tentang Masalah C10K, dan catatan khusus adalah bagian yang mengacu pada server I / O asinkron. http://www.kegel.com/c10k.html#aio
Saya percaya ini cukup meringkas apa yang Node.js lakukan di server, dengan mengizinkan utas untuk memproses permintaan pengguna sambil mengandalkan I / O interupsi (peristiwa) untuk memberi tahu utas pekerjaan yang selesai, daripada meminta utas bertanggung jawab atas pekerjaan CPU penuh. Utas dapat melanjutkan dengan hal-hal lain (non-pemblokiran), dan diberi tahu kapan suatu pekerjaan dilakukan (misalnya file ditemukan atau video dikompresi).
Ini selanjutnya berarti bahwa utas lebih tersedia untuk soket dan oleh karena itu bagi pengguna di server.
Kemudian saya menemukan ini: http://teddziuba.com/2011/10/stAPAN-talk-on-event-loops.html
Penulis di sini mengklaim bahwa meskipun kerangka kerja yang digerakkan oleh peristiwa (threading terputus), dapat membebaskan utas, ia sebenarnya tidak mengurangi jumlah pekerjaan yang harus dilakukan CPU! Alasannya di sini adalah bahwa jika, katakanlah, seorang pengguna meminta untuk mengompresi video yang mereka unggah, CPU masih harus benar-benar melakukan pekerjaan ini, dan akan memblokirnya saat melakukannya (demi kesederhanaan, mari kita lupakan tentang paralelisme di sini - kecuali jika Anda lebih tahu!).
Saya seorang programmer langsung, bukan admin server atau yang seperti itu. Saya hanya tertarik untuk mengetahui: apakah Node.j adalah hadiah dari para dewa 'komputasi awan' atau apakah semua ini adalah hawa panas, dan tidak akan benar-benar menghemat waktu dan / atau uang perusahaan dengan meningkatkan skalabilitas?
Terimakasih banyak.