Apache Storm - สถาปัตยกรรมคลัสเตอร์
จุดเด่นหลักอย่างหนึ่งของ Apache Storm คือเป็นแอปพลิเคชั่นที่ทนทานต่อความผิดพลาดได้อย่างรวดเร็วโดยไม่มีแอปพลิเคชันแบบกระจาย“ Single Point of Failure” (SPOF) เราสามารถติดตั้ง Apache Storm ในระบบต่างๆได้มากเท่าที่ต้องการเพื่อเพิ่มความจุของแอปพลิเคชัน
มาดูกันว่าคลัสเตอร์ Apache Storm ได้รับการออกแบบและสถาปัตยกรรมภายในอย่างไร แผนภาพต่อไปนี้แสดงถึงการออกแบบคลัสเตอร์
Apache Storm มีโหนดสองประเภท Nimbus (โหนดหลัก) และ Supervisor(โหนดคนงาน) Nimbus เป็นส่วนประกอบหลักของ Apache Storm งานหลักของ Nimbus คือการรันโทโพโลยีของพายุ Nimbus วิเคราะห์โทโพโลยีและรวบรวมงานที่จะดำเนินการ จากนั้นจะกระจายงานไปยังหัวหน้างานที่มีอยู่
หัวหน้างานจะมีกระบวนการทำงานอย่างน้อยหนึ่งกระบวนการ หัวหน้างานจะมอบหมายงานให้กับกระบวนการของผู้ปฏิบัติงาน กระบวนการของผู้ปฏิบัติงานจะสร้างตัวดำเนินการได้มากเท่าที่จำเป็นและเรียกใช้งาน Apache Storm ใช้ระบบการส่งข้อความแบบกระจายภายในสำหรับการสื่อสารระหว่าง nimbus และหัวหน้างาน
ส่วนประกอบ | คำอธิบาย |
---|---|
Nimbus | Nimbus เป็นโหนดหลักของคลัสเตอร์ Storm โหนดอื่น ๆ ทั้งหมดในคลัสเตอร์เรียกว่าเป็นworker nodes. โหนดหลักมีหน้าที่ในการกระจายข้อมูลระหว่างโหนดของผู้ปฏิบัติงานทั้งหมดมอบหมายงานให้กับโหนดของผู้ปฏิบัติงานและการตรวจสอบความล้มเหลว |
หัวหน้างาน | โหนดที่ทำตามคำแนะนำที่กำหนดโดย nimbus เรียกว่าเป็น Supervisors กsupervisor มีกระบวนการของผู้ปฏิบัติงานหลายขั้นตอนและควบคุมกระบวนการของผู้ปฏิบัติงานเพื่อทำภารกิจที่มอบหมายโดย nimbus |
กระบวนการของผู้ปฏิบัติงาน | กระบวนการของผู้ปฏิบัติงานจะดำเนินการงานที่เกี่ยวข้องกับโทโพโลยีเฉพาะ กระบวนการของผู้ปฏิบัติงานจะไม่เรียกใช้งานด้วยตัวเอง แต่จะสร้างขึ้นexecutorsและขอให้พวกเขาทำงานเฉพาะ กระบวนการของผู้ปฏิบัติงานจะมีตัวดำเนินการหลายตัว |
ผู้บริหาร | ตัวดำเนินการคืออะไรนอกจากเธรดเดียวที่เกิดจากกระบวนการของผู้ปฏิบัติงาน ตัวดำเนินการทำงานตั้งแต่หนึ่งงานขึ้นไป แต่สำหรับพวยกาหรือโบลต์เฉพาะเท่านั้น |
งาน | งานดำเนินการประมวลผลข้อมูลจริง ดังนั้นจึงเป็นทั้งพวยกาหรือโบลต์ |
กรอบ ZooKeeper | Apache ZooKeeper เป็นบริการที่ใช้โดยคลัสเตอร์ (กลุ่มของโหนด) เพื่อประสานงานระหว่างกันเองและรักษาข้อมูลที่แชร์ด้วยเทคนิคการซิงโครไนซ์ที่มีประสิทธิภาพ Nimbus ไม่มีสถานะดังนั้นจึงขึ้นอยู่กับ ZooKeeper ในการตรวจสอบสถานะโหนดการทำงาน ZooKeeper ช่วยหัวหน้างานในการโต้ตอบกับ nimbus มีหน้าที่รับผิดชอบในการรักษาสถานะของ nimbus และหัวหน้างาน |
พายุไม่มีสัญชาติในธรรมชาติ แม้ว่าธรรมชาติไร้สัญชาติจะมีข้อเสียในตัวเอง แต่ก็ช่วยให้ Storm ประมวลผลข้อมูลแบบเรียลไทม์ด้วยวิธีที่ดีที่สุดและรวดเร็วที่สุด
พายุไม่ได้ไร้สัญชาติโดยสิ้นเชิง มันเก็บสถานะไว้ใน Apache ZooKeeper เนื่องจากสถานะพร้อมใช้งานใน Apache ZooKeeper จึงสามารถรีสตาร์ท nimbus ที่ล้มเหลวและทำให้ทำงานได้จากจุดที่ทิ้งไว้ โดยปกติแล้วเครื่องมือตรวจสอบบริการเช่นmonit จะตรวจสอบ Nimbus และรีสตาร์ทหากมีความล้มเหลว
Apache Storm ยังมีโทโพโลยีขั้นสูงที่เรียกว่า Trident Topologyด้วยการบำรุงรักษาสถานะและยังมี API ระดับสูงเช่น Pig เราจะพูดถึงคุณสมบัติทั้งหมดนี้ในบทต่อ ๆ ไป