Apache Storm - เวิร์กโฟลว์
คลัสเตอร์ Storm ที่ใช้งานได้ควรมีหนึ่ง nimbus และผู้ควบคุมอย่างน้อยหนึ่งคน อีกโหนดที่สำคัญคือ Apache ZooKeeper ซึ่งจะใช้สำหรับการประสานงานระหว่าง nimbus และผู้บังคับบัญชา
ให้เรามาดูขั้นตอนการทำงานของ Apache Storm อย่างละเอียด -
ในขั้นต้น nimbus จะรอให้ "Storm Topology" ส่งมาให้
เมื่อส่งโทโพโลยีแล้วระบบจะประมวลผลโทโพโลยีและรวบรวมงานทั้งหมดที่ต้องดำเนินการและลำดับที่จะดำเนินการงาน
จากนั้น nimbus จะกระจายงานให้กับหัวหน้างานทั้งหมดที่มีอยู่อย่างเท่าเทียมกัน
ในช่วงเวลาหนึ่งหัวหน้างานทุกคนจะส่งสัญญาณการเต้นของหัวใจไปยัง nimbus เพื่อแจ้งว่าพวกเขายังมีชีวิตอยู่
เมื่อหัวหน้างานเสียชีวิตและไม่ส่งสัญญาณการเต้นของหัวใจไปยัง nimbus ดังนั้น nimbus จะมอบหมายงานให้หัวหน้างานคนอื่น
เมื่อนิมบัสตายผู้บังคับบัญชาจะทำงานที่ได้รับมอบหมายแล้วโดยไม่มีปัญหาใด ๆ
เมื่องานทั้งหมดเสร็จสิ้นหัวหน้างานจะรอให้มีงานใหม่เข้ามา
ในระหว่างนี้นิมบัสที่ตายแล้วจะถูกรีสตาร์ทโดยอัตโนมัติด้วยเครื่องมือตรวจสอบบริการ
นิมบัสที่รีสตาร์ทจะดำเนินการต่อจากจุดที่หยุด ในทำนองเดียวกันหัวหน้างานที่ตายแล้วสามารถเริ่มต้นใหม่ได้โดยอัตโนมัติ เนื่องจากทั้ง nimbus และผู้ควบคุมสามารถเริ่มต้นใหม่ได้โดยอัตโนมัติและทั้งสองจะยังคงดำเนินต่อไปเหมือนเดิม Storm จึงรับประกันว่าจะประมวลผลงานทั้งหมดอย่างน้อยหนึ่งครั้ง
เมื่อโทโพโลยีทั้งหมดได้รับการประมวลผลแล้ว nimbus จะรอให้โทโพโลยีใหม่มาถึงและในทำนองเดียวกันหัวหน้างานก็รองานใหม่
ตามค่าเริ่มต้นมีสองโหมดในคลัสเตอร์ Storm -
Local mode- โหมดนี้ใช้สำหรับการพัฒนาการทดสอบและการดีบักเนื่องจากเป็นวิธีที่ง่ายที่สุดในการดูส่วนประกอบโทโพโลยีทั้งหมดที่ทำงานร่วมกัน ในโหมดนี้เราสามารถปรับพารามิเตอร์ที่ทำให้เราเห็นว่าโทโพโลยีของเราทำงานอย่างไรในสภาพแวดล้อมการกำหนดค่า Storm ต่างๆ ในโหมดโลคัลโทโพโลยีพายุทำงานบนเครื่องโลคัลใน JVM เดียว
Production mode- ในโหมดนี้เราส่งโทโพโลยีของเราไปยังคลัสเตอร์สตอร์มที่ทำงานซึ่งประกอบด้วยหลายกระบวนการโดยปกติจะทำงานบนเครื่องที่แตกต่างกัน ตามที่กล่าวไว้ในขั้นตอนการทำงานของ storm คลัสเตอร์การทำงานจะทำงานไปเรื่อย ๆ จนกว่าจะปิดตัวลง