นักเรียนหลายคนอาจเคยได้ยินเกี่ยวกับ NodeJs และรู้ว่ามันสามารถเรียกใช้ JavaScript บนเซิร์ฟเวอร์ได้ แต่พวกเขาอาจไม่ชัดเจนเกี่ยวกับสถานการณ์การใช้งาน เมื่อเร็ว ๆ นี้พวกเขายังได้เรียนรู้ nodejs ดังนั้นฉันจึงสรุป
ข้อดีของ nodejs:
มีภาษาฝั่งเซิร์ฟเวอร์มากมาย (PHP, Java, ASP.NET) ปัญหาคืออะไร? ภาษาฝั่งเซิร์ฟเวอร์ปัจจุบันสร้างเธรดสำหรับลิงค์ผู้ใช้แต่ละคนเมื่อผู้ใช้เข้าถึงเซิร์ฟเวอร์ แต่แต่ละเธรดใช้หน่วยความจำประมาณ 2 เมตร หากเซิร์ฟเวอร์ที่มีหน่วยความจำ 8G สามารถเชื่อมโยงผู้ใช้ประมาณ 4,000 คน หากจำนวนผู้ใช้มีลิงก์จำนวนมากจำนวนเซิร์ฟเวอร์จะต้องเพิ่มขึ้น ยิ่งไปกว่านั้นมีหลายวิธีที่ผู้ใช้จะเชื่อมโยงในเวลาเดียวกัน (เช่นแอพหน้าเว็บในเวลาเดียวกัน) ซึ่งเกี่ยวข้องกับปัญหาของการแชร์เซิร์ฟเวอร์ดังนั้นวิธีที่เซิร์ฟเวอร์รองรับจำนวนผู้ใช้สูงสุดในเวลาเดียวกันกลายเป็นปัญหา
NodeJS แก้ไขวิธีการเชื่อมโยงลูกค้าไปยังเซิร์ฟเวอร์เพื่อแก้ปัญหานี้ มันไม่ได้สร้างเธรดใหม่สำหรับไคลเอนต์แต่ละตัว แต่เริ่มต้นเหตุการณ์ที่ประมวลผลภายในสำหรับแต่ละลิงค์ไคลเอนต์ ดังนั้น NodeJS จึงมีความสามารถในการจัดการลิงก์ไคลเอนต์สูงถึงผู้ใช้หลายหมื่นคนในเวลาเดียวกัน
NodeJS เหมาะสำหรับการพัฒนาแอปพลิเคชัน:
เมื่อแอปพลิเคชันจำเป็นต้องประมวลผลอินพุต/เอาต์พุตที่เกิดขึ้นพร้อมกันจำนวนมากและไม่จำเป็นต้องมีการประมวลผลที่ซับซ้อนมากภายในแอปพลิเคชันก่อนที่จะส่งการตอบกลับไปยังไคลเอนต์เราควรพิจารณาใช้ NODEJS สำหรับการพัฒนาแอปพลิเคชันเช่น:
1. เซิร์ฟเวอร์แชท: หากมีคนจำนวนมากแชทลิงก์พร้อมกันระหว่างผู้ใช้และเซิร์ฟเวอร์มีขนาดใหญ่ แต่การประมวลผลข้อมูลบนเซิร์ฟเวอร์นั้นไม่ซับซ้อน
2. เซิร์ฟเวอร์ของเว็บไซต์บริการที่ครอบคลุมและเว็บไซต์อีคอมเมิร์ซ: บนฝั่งเซิร์ฟเวอร์ของเว็บไซต์ประเภทนี้มักจะเป็นไปได้ที่จะได้รับข้อมูลหลายพันชิ้นต่อวินาทีและจำเป็นต้องเขียนข้อมูลเหล่านี้ลงในฐานข้อมูล NodeJS สามารถเขียนข้อมูลเหล่านี้ลงในแคชได้อย่างรวดเร็วผ่านกลไกคิวจากนั้นนำข้อมูลออกจากพื้นที่แคชแล้วเขียนลงในฐานข้อมูลผ่านการประมวลผลแต่ละครั้ง หากเป็นเซิร์ฟเวอร์อื่น (เช่นเซิร์ฟเวอร์ Apache หรือเซิร์ฟเวอร์ Tomcat) เนื่องจากเซิร์ฟเวอร์เหล่านี้ใช้กลไกการปิดกั้น I/O ข้อมูลแต่ละชิ้นจะต้องเขียนในฐานข้อมูลสักพัก (และรอจนกว่าจะเสร็จสิ้นก่อนที่จะเขียนข้อมูลครั้งต่อไป
สรุป:
ระบบที่มีขนาดใหญ่กว่าเล็กน้อยไม่สามารถจัดการได้ด้วยภาษาการพัฒนา มันมักจะผสมกับหลายประเภทเช่น C และ C ++ สำหรับการพัฒนาฝั่งเซิร์ฟเวอร์, Java สำหรับตรรกะทางธุรกิจ, PHP สำหรับการแสดงผลส่วนหน้าและยังต้องการมิดเดิลแวร์ข้อความ ฯลฯ
NodeJS สามารถสร้างต้นแบบได้อย่างรวดเร็วทางฝั่งเซิร์ฟเวอร์ (ปรากฎว่ามีเพียงสิ่งเดียวที่สามารถทำได้โดย C-System และ Java และประสิทธิภาพยังคงสูงมาก) และจำนวนรหัสจะค่อนข้างเล็ก อีกจุดหนึ่งคือข้อดีของไวยากรณ์การปิด JS ฯลฯ แต่ไม่เหมาะสำหรับการประมวลผลที่ใช้ CPU มากและสามารถแก้ไขได้โดยการหมุน ว่ากันว่ามีคนแบ่งปันผลการวิจัยนี้ใน QCON ในครั้งนี้ดังนั้นคุณสามารถให้ความสนใจกับมัน
แต่ละภาษามีสาขาที่เหมาะสม ไม่จำเป็นต้องบังคับภาษาเพื่อแก้ปัญหาทุกอย่าง มันมีลักษณะของภาษาอื่น ๆ โดยการแลกเปลี่ยนอย่างต่อเนื่องคือเป้าหมาย
นี่คือบทสรุปทั้งหมดที่เห็นในซีรีส์ฉันหวังว่าจะแก้ไขพวกเขา