Node.js Process Model

Node.js Process Model

בחלק זה נלמד על מודל התהליך של Node.js ונבין מדוע עלינו להשתמש ב-Node.js.

מודל שרת אינטרנט מסורתי

במודל שרת האינטרנט המסורתי, כל בקשה מטופלת על ידי שרשור ייעודי ממאגר השרשורים. אם אין שרשור זמין במאגר השרשורים בכל נקודת זמן, הבקשה ממתינה לשרשור הזמין הבא. שרשור ייעודי מבצע בקשה מסוימת ואינו חוזר למאגר השרשורים עד שהוא מסיים את הביצוע ומחזיר תגובה.

 

מודל תהליך Node.js

Node.js מעבד בקשות משתמשים בצורה שונה בהשוואה למודל שרת אינטרנט מסורתי. Node.js פועל בתהליך אחד וקוד האפליקציה פועל בשרשור בודד ולכן זקוק לפחות משאבים מפלטפורמות אחרות. כל בקשות המשתמש לאפליקציית האינטרנט שלך יטופלו על ידי שרשור אחד וכל עבודת ה-I/O או העבודה הממושכת מבוצעת באופן אסינכרוני עבור בקשה מסוימת. אז, השרשור היחיד הזה לא צריך לחכות להשלמת הבקשה והוא פנוי לטפל בבקשה הבאה. כאשר עבודת קלט/פלט אסינכרונית מסתיימת אז היא מעבדת את הבקשה עוד יותר ושולחת את התגובה.

נלמד את ההבדל המדויק ב  קורס Node.JS

לולאת אירועים צופה כל הזמן אחר האירועים שיועלו עבור עבודה אסינכרונית ומבצעת פונקציית התקשרות חוזרת עם סיום העבודה. באופן פנימי, Node.js משתמש ב-libev עבור לולאת האירועים אשר בתורה משתמש במאגר תהליכים פנימי של C++ כדי לספק I/O אסינכרוני.

האיור הבא ממחיש מודל שרת אינטרנט אסינכרוני המשתמש ב-Node.js.

מודל התהליך של Node.js מגדיל את הביצועים ואת יכולת ההרחבה עם כמה סייגים. Node.js אינו מתאים לאפליקציה שמבצעת פעולות עתירות מעבד כמו עיבוד תמונה או עבודת חישוב כבדה אחרת מכיוון שלוקח זמן לעבד בקשה ובכך חוסם את השרשור הבודד.

העתיד שלך בהייטק מתחיל כאן
צור איתי קשר עוד היום

דילוג לתוכן