How Node js Works
Download 0.61 Mb.
|
How node works
- Bu sahifa navigatsiya:
- Node.js shuningdek http-parser, zlib, c-areas, openSSL kabi kutubxonalarni ham kapot
- Non-blocking I/O operations
- Quyidagi jarayon bizning thread imiz ishga tushgan paytda yuz beradigan jarayonlar hisoblanadi
- Requiring modules Resolving
- Execution – bu code ning ishga tushirilishi.
How Node.js WorksV8 and libuvNon-blocking modelNode.js scalabilityThread & Thread PoolHow requiring modules work ?ArchitectureV8 Javascript Engine – bu biz yozgan JS code ni mashina ya`ni kompyuter tushunadigan xolatga o`girib beradiLibuv – bu open source kutubxona hisoblanib async I/O operation larga ma`sul va file system, networking kabi boshqa ishlarga ham ushbu kutubxona javobgar. Bundan tashqari libuv Node.js dagi asosiy qurollardan bo`lgan Thread Pool va Event Loop ni ishlatib beradi.Node.js shuningdek http-parser, zlib, c-areas, openSSL kabi kutubxonalarni ham kapot ostida ishlatib beradi lekin asosiy kurubxonalar bu V8 va libuv hisoblanishadi.I/O operationsI/O operations – bu dasturning tizimda joylashgan diskka yoki networkka aralashuvi bo`ladigan ish jarayonlariga aytiladi. Masalan fs module biror bir faylni o`qishi yoki yozishi ham tizimdagi qaysidir faylga murojaat sifatida hisoblansa bo`ladi.Non-blocking I/O operationsBu turdagi I/O operatsiyalar hech qanaqa kuttirishlarsiz yani dastur ishlashini to`xtatmasdan qaysidir jarayon bo`ladigan paytda sodir bo`lib yakunlanadigan operatsiyalar hisoblanishadi.Non-blocking vs blocking performanceWhy node.js scalable ?Odatiy ( Traditional web serving tecnhiques ) ga qaraganda Node.js single thread ni o`zida bir vaqtda bo`ladigan judayam ko`p ulanma ( connection ) larni handle qila oladi. Odatiy web server lar ko`pincha har bir ulanma uchun alohida thread yaratishadi, agarda thread lar bo`sh bo`lmaydigan bo`lsa qaysidir thread bo`shashini kutib turishadi.Kichik hisob kitob =))Odatiy web serverlarda ( Traditional ): Agarda har bir thread miz 2mb xotiraga ega bo`lib tursa va RAM xotiramiz 8gb bo`ladigan bo`lsa, bizning dasturga ulanishlar soni 4,000 ta gacha yetishi mumkin.Node.js: Huddi shu xotiraga ega serverimizda biz 1 million ta gacha bir vaqtni o`zida bo`ladigan ulanishlar ga erisha olamiz va 600 ming ta websocket ulanmalariga ham hizmat ko`rsata olamiz.Thread & Thread PoolThread – bu deqqoncha qilib aytadigan bo`lsak ishchi va unga bo`ladigan barcha ulanmalarga va o`sha ulanmalarni ishi bajarilishiga ma`sul xisoblanadi. Node.js da esa single-thread ya`ni bitta ishchi.Quyidagi jarayon bizning thread imiz ishga tushgan paytda yuz beradigan jarayonlar hisoblanadiE`tibor beradigan bo`lsak main thread imiz event loop tomonidan ishga tushiriladi, lekin bizda judayam katta hisob-kitobga ega bo`ladigan task lar kelib qoladigan bo`lsa main-thread muammoga duch kelishi mumkin va ana shu jarayonda bizga Thread Pool kerak bo`ladi. Crytography, File System API s kabi katta ishlarni qo`shimcha thread ochish yordamida amalga oshiriladi.E`tibor beradigan bo`lsak main thread imiz event loop tomonidan ishga tushiriladi, lekin bizda judayam katta hisob-kitobga ega bo`ladigan task lar kelib qoladigan bo`lsa main-thread muammoga duch kelishi mumkin va ana shu jarayonda bizga Thread Pool kerak bo`ladi. Crytography, File System API s kabi katta ishlarni qo`shimcha thread ochish yordamida amalga oshiriladi.Requiring modulesResolvingModullar Node.js da asosan 3ga bo`linadi:
WrappingBu jarayonda Node bizning kodimizni maxsus IIFE functionga o`rab beradi va biz require qayerdan keldi o`zidan o`zi degan savolga shu yo`l orqali javob topa olishimiz mumkinExecution – bu code ning ishga tushirilishi.Execution – bu code ning ishga tushirilishi.Returning exports – bu chaqirilgan modulelarning code ni biz chaqirayotgan module ga chaqirib olamiz)).Caching – bu agar biz chaqirilgan module ni yana chaqiradigan bo`lsak node boshqatdan require qilmaydi balki allaqachon execute qilingan module dan foydalanadi.Download 0.61 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling