ค้นหาเว็บไซต์

4 ผู้จัดการกระบวนการสำหรับแอปพลิเคชัน Node.js ใน Linux


ตัวจัดการกระบวนการ Node.js เป็นเครื่องมือที่มีประโยชน์เพื่อให้แน่ใจว่ากระบวนการหรือสคริปต์ Node.js ทำงานอย่างต่อเนื่อง (ตลอดไป) และสามารถเปิดใช้งานให้เริ่มต้นอัตโนมัติเมื่อบูตระบบ .

ช่วยให้คุณสามารถตรวจสอบบริการที่ทำงานอยู่และอำนวยความสะดวกให้กับงานการดูแลระบบทั่วไป (เช่น การรีสตาร์ทเมื่อเกิดความล้มเหลว การหยุด โหลดการกำหนดค่าใหม่โดยไม่ต้องหยุดทำงาน แก้ไขตัวแปร/การตั้งค่าสภาพแวดล้อม การแสดงตัวชี้วัดประสิทธิภาพ และอื่นๆ อีกมากมาย) นอกจากนี้ยังรองรับการบันทึกแอปพลิเคชัน การทำคลัสเตอร์ และการปรับสมดุลโหลด และคุณสมบัติการจัดการกระบวนการที่มีประโยชน์อื่นๆ อีกมากมาย

อ่านเพิ่มเติม: 14 NodeJS Frameworks ที่ดีที่สุดสำหรับนักพัฒนาในปี 2019

ตัวจัดการแพ็คเกจมีประโยชน์โดยเฉพาะสำหรับการปรับใช้แอปพลิเคชัน Node.js ในสภาพแวดล้อมการใช้งานจริง ในบทความนี้ เราจะตรวจสอบตัวจัดการกระบวนการสี่ตัวสำหรับการจัดการแอปพลิเคชัน Node.js ในระบบ Linux

1.PM2

PM2 เป็นโอเพ่นซอร์ส ขั้นสูง มีคุณลักษณะหลากหลาย ข้ามแพลตฟอร์ม และเป็นผู้จัดการกระบวนการระดับการผลิตที่ได้รับความนิยมมากที่สุดสำหรับ Node.js พร้อมด้วยตัวจัดสรรภาระงานในตัว ช่วยให้คุณสามารถแสดงรายการ ตรวจสอบ และดำเนินการกับกระบวนการ Nodejs ที่เปิดใช้งานทั้งหมด และสนับสนุนโหมดคลัสเตอร์

รองรับการตรวจสอบแอปพลิเคชัน: นำเสนอวิธีง่ายๆ ในการตรวจสอบการใช้งานทรัพยากร (หน่วยความจำและ CPU) ของแอปพลิเคชันของคุณ รองรับเวิร์กโฟลว์การจัดการกระบวนการของคุณโดยอนุญาตให้คุณกำหนดค่าและปรับแต่งพฤติกรรมของแต่ละแอปพลิเคชันผ่านไฟล์กระบวนการ (รูปแบบที่รองรับ ได้แก่ Javascript, JSON และ YAML< /แข็งแกร่ง>)

บันทึกแอปพลิเคชันมีความสำคัญเสมอในสภาพแวดล้อมการใช้งานจริง ด้วยเหตุนี้ PM2 จึงช่วยให้คุณจัดการบันทึกของแอปพลิเคชันของคุณได้อย่างง่ายดาย โดยมีวิธีและรูปแบบที่แตกต่างกันสำหรับการจัดการและการแสดงบันทึกตามลำดับ คุณสามารถแสดงบันทึกแบบเรียลไทม์ ล้างข้อมูล และโหลดซ้ำเมื่อจำเป็น

ที่สำคัญ PM2 รองรับสคริปต์เริ่มต้นซึ่งคุณสามารถกำหนดค่าให้เริ่มกระบวนการอัตโนมัติในการรีสตาร์ทเครื่องที่คาดหวังหรือไม่คาดคิดได้ นอกจากนี้ยังรองรับการรีสตาร์ทแอปพลิเคชันอัตโนมัติเมื่อมีการแก้ไขไฟล์ในไดเร็กทอรีปัจจุบันหรือไดเร็กทอรีย่อย

นอกจากนี้ PM2 ยังมาพร้อมกับระบบโมดูลที่ช่วยให้ผู้ใช้สามารถสร้างโมดูลที่กำหนดเองสำหรับการจัดการกระบวนการของ Nodejs ตัวอย่างเช่น คุณสามารถสร้างโมดูลสำหรับโมดูลการหมุนเวียนบันทึกหรือการปรับสมดุลโหลด และอื่นๆ อีกมากมาย

สุดท้ายแต่ไม่ท้ายสุด หากคุณใช้คอนเทนเนอร์ Docker PM2 จะอนุญาตให้รวมคอนเทนเนอร์ได้ และเสนอระบบ API ที่อนุญาตให้คุณใช้งานโดยทางโปรแกรม

2.สตรองลูป PM

StrongLoop PM ยังเป็นผู้จัดการกระบวนการผลิตโอเพ่นซอร์สขั้นสูงสำหรับแอปพลิเคชัน Node.js ที่มีโหลดบาลานซ์ในตัวเหมือนกับ PM2 และสามารถใช้งานได้ผ่านคำสั่ง- เส้นหรืออินเทอร์เฟซแบบกราฟิก

รองรับการตรวจสอบแอปพลิเคชัน (ดูตัวชี้วัดประสิทธิภาพ เช่น เวลาวนรอบเหตุการณ์ การใช้ CPU และหน่วยความจำ) การใช้งานหลายโฮสต์ โหมดคลัสเตอร์ การรีสตาร์ทและอัปเกรดแอปพลิเคชันโดยใช้เวลาเป็นศูนย์ การรีสตาร์ทกระบวนการอัตโนมัติเมื่อเกิดความล้มเหลว และการรวมและการจัดการบันทึก

นอกจากนี้ ยังมาพร้อมกับการสนับสนุน Docker ทำให้คุณสามารถส่งออกเมตริกประสิทธิภาพไปยังเซิร์ฟเวอร์ที่เข้ากันได้กับ StatsD และดูในคอนโซลของบุคคลที่สาม เช่น DataDog, Graphite<, Splunk รวมถึง Syslog และไฟล์บันทึกดิบ

3. ตลอดไป

Forever เป็นเครื่องมืออินเทอร์เฟซบรรทัดคำสั่งแบบโอเพ่นซอร์ส เรียบง่าย และกำหนดค่าได้ เพื่อเรียกใช้สคริปต์ที่กำหนดอย่างต่อเนื่อง (ตลอดไป) เหมาะสำหรับการเรียกใช้แอปและสคริปต์ Node.js ในปริมาณน้อย คุณสามารถใช้ ตลอดไป ได้สองวิธี: ผ่านทางบรรทัดคำสั่งหรือโดยการฝังไว้ในโค้ดของคุณ

ช่วยให้คุณสามารถจัดการ (เริ่ม แสดงรายการ หยุด หยุดทั้งหมด รีสตาร์ท รีสตาร์ททั้งหมด ฯลฯ..) กระบวนการ Node.js และสนับสนุนการดูการเปลี่ยนแปลงไฟล์ โหมดแก้ไขข้อบกพร่อง บันทึกแอปพลิเคชัน การฆ่า ของการปรับแต่งกระบวนการและสัญญาณทางออก และอื่นๆ อีกมากมาย นอกจากนี้ยังรองรับตัวเลือกการใช้งานหลายอย่างที่คุณสามารถส่งโดยตรงจากบรรทัดคำสั่งหรือส่งผ่านเป็นไฟล์ JSON

4. SystemD – ผู้จัดการฝ่ายบริการและระบบ

ใน Linux นั้น Systemd เป็น daemon ที่จัดการทรัพยากรระบบ เช่น กระบวนการและส่วนประกอบอื่นๆ ของระบบไฟล์ ทรัพยากรใดๆ ที่จัดการโดย systemd เรียกว่า หน่วย ยูนิตมีหลายประเภท รวมถึงบริการ อุปกรณ์ ซ็อกเก็ต เมาท์ เป้าหมาย และยูนิตอื่นๆ อีกมากมาย

Systemd จัดการหน่วยต่างๆ ผ่านไฟล์การกำหนดค่าที่เรียกว่าไฟล์ unit ดังนั้น ในการจัดการเซิร์ฟเวอร์ Node.js ของคุณเหมือนกับบริการระบบอื่นๆ คุณต้องสร้างไฟล์หน่วยสำหรับเซิร์ฟเวอร์ ซึ่งในกรณีนี้จะเป็นไฟล์บริการ

เมื่อคุณสร้างไฟล์บริการสำหรับเซิร์ฟเวอร์ Node.js ของคุณแล้ว คุณสามารถเริ่มต้นได้ เปิดใช้งานให้เริ่มอัตโนมัติในเวลาบูตระบบ ตรวจสอบสถานะ รีสตาร์ท (หยุดแล้วเริ่มใหม่อีกครั้ง) หรือโหลดการกำหนดค่าใหม่ และหยุดการทำงานเหมือนกับบริการอื่นๆ ของ systemd

สำหรับข้อมูลเพิ่มเติม โปรดดูที่: วิธีสร้างและเรียกใช้หน่วยบริการใหม่ใน Systemd โดยใช้เชลล์สคริปต์

สรุป

ตัวจัดการแพ็คเกจ Node.js เป็นเครื่องมือที่มีประโยชน์สำหรับการปรับใช้โปรเจ็กต์ของคุณในสภาพแวดล้อมการใช้งานจริง มันทำให้แอปพลิเคชั่นคงอยู่ตลอดไปและลดความซับซ้อนของวิธีการควบคุมมัน ในบทความนี้ เราได้ตรวจสอบตัวจัดการแพ็คเกจสี่ตัวสำหรับ Node.js หากคุณมีคำถามเพิ่มเติมหรือคำถาม โปรดใช้แบบฟอร์มคำติชมด้านล่างเพื่อติดต่อเรา