Storm - ระบบส่งข้อความแบบกระจาย
Apache Storm ประมวลผลข้อมูลแบบเรียลไทม์และอินพุตมักมาจากระบบจัดคิวข้อความ ระบบส่งข้อความแบบกระจายภายนอกจะให้ข้อมูลที่จำเป็นสำหรับการคำนวณแบบเรียลไทม์ Spout จะอ่านข้อมูลจากระบบส่งข้อความและแปลงเป็น tuples และป้อนข้อมูลลงใน Apache Storm ข้อเท็จจริงที่น่าสนใจก็คือ Apache Storm ใช้ระบบส่งข้อความแบบกระจายของตัวเองเป็นการภายในเพื่อการสื่อสารระหว่างเพื่อนกับหัวหน้างาน
ระบบส่งข้อความแบบกระจายคืออะไร?
การส่งข้อความแบบกระจายจะขึ้นอยู่กับแนวคิดของการจัดคิวข้อความที่เชื่อถือได้ ข้อความจะอยู่ในคิวแบบอะซิงโครนัสระหว่างแอปพลิเคชันไคลเอ็นต์และระบบการส่งข้อความ ระบบการส่งข้อความแบบกระจายให้ประโยชน์ของความน่าเชื่อถือความสามารถในการปรับขนาดและความคงอยู่
รูปแบบการส่งข้อความส่วนใหญ่เป็นไปตาม publish-subscribe แบบจำลอง (เพียง Pub-Sub) ที่ซึ่งผู้ส่งข้อความถูกเรียก publishers และผู้ที่ต้องการรับข้อความจะถูกเรียก subscribers.
เมื่อผู้ส่งเผยแพร่ข้อความแล้วสมาชิกจะได้รับข้อความที่เลือกด้วยความช่วยเหลือของตัวเลือกการกรอง โดยปกติเรามีการกรองสองประเภทประเภทหนึ่งคือtopic-based filtering และอีกอย่างหนึ่งคือ content-based filtering.
โปรดทราบว่าโมเดลย่อย pub สามารถสื่อสารผ่านข้อความเท่านั้น มันเป็นสถาปัตยกรรมคู่กันอย่างหลวม ๆ แม้แต่ผู้ส่งก็ไม่รู้ว่าใครคือผู้ติดตาม รูปแบบข้อความจำนวนมากเปิดใช้งานกับนายหน้าซื้อขายข้อความเพื่อแลกเปลี่ยนข้อความเผยแพร่เพื่อให้สมาชิกจำนวนมากเข้าถึงได้อย่างทันท่วงที ตัวอย่างในชีวิตจริงคือ Dish TV ซึ่งเผยแพร่ช่องต่างๆเช่นกีฬาภาพยนตร์เพลง ฯลฯ และทุกคนสามารถสมัครรับข้อมูลจากชุดช่องของตนเองและรับเมื่อใดก็ตามที่มีช่องที่สมัครรับข้อมูล
ตารางต่อไปนี้อธิบายถึงระบบการส่งข้อความปริมาณงานสูงยอดนิยม -
ระบบส่งข้อความแบบกระจาย | คำอธิบาย |
---|---|
อาปาเช่คาฟคา | Kafka ได้รับการพัฒนาที่ LinkedIn Corporation และต่อมาได้กลายเป็นโครงการย่อยของ Apache Apache Kafka ขึ้นอยู่กับรูปแบบการสมัครสมาชิกที่เปิดใช้งานแบบถาวรและต่อเนื่องแบบกระจาย Kafka รวดเร็วปรับขนาดได้และมีประสิทธิภาพสูง |
RabbitMQ | RabbitMQ เป็นแอปพลิเคชั่นส่งข้อความที่มีประสิทธิภาพแบบโอเพนซอร์ส ใช้งานง่ายและทำงานบนทุกแพลตฟอร์ม |
JMS (Java Message Service) | JMS เป็น API โอเพ่นซอร์สที่รองรับการสร้างอ่านและส่งข้อความจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชัน มีการรับประกันการส่งข้อความและเป็นไปตามรูปแบบการสมัครสมาชิก |
ActiveMQ | ระบบการส่งข้อความ ActiveMQ เป็น API โอเพ่นซอร์สของ JMS |
ZeroMQ | ZeroMQ คือการประมวลผลข้อความแบบเพียร์เพียร์ที่ไม่มีนายหน้า มีรูปแบบข้อความ push-pull เราเตอร์ตัวแทนจำหน่าย |
เคสเตรล | Kestrel เป็นคิวข้อความแบบกระจายที่รวดเร็วเชื่อถือได้และเรียบง่าย |
พิธีสารทริฟท์
Thrift ถูกสร้างขึ้นที่ Facebook สำหรับการพัฒนาบริการข้ามภาษาและการเรียกขั้นตอนระยะไกล (RPC) ต่อมาได้กลายเป็นโครงการ Apache แบบโอเพนซอร์ส Apache Thrift เป็นไฟล์Interface Definition Language และอนุญาตให้กำหนดประเภทข้อมูลและการใช้บริการใหม่ที่ด้านบนของประเภทข้อมูลที่กำหนดได้อย่างง่ายดาย
Apache Thrift ยังเป็นเฟรมเวิร์กการสื่อสารที่รองรับระบบฝังตัวแอปพลิเคชันมือถือเว็บแอปพลิเคชันและภาษาโปรแกรมอื่น ๆ อีกมากมาย คุณสมบัติหลักบางประการที่เกี่ยวข้องกับ Apache Thrift คือความเป็นโมดูลาร์ความยืดหยุ่นและประสิทธิภาพสูง นอกจากนี้ยังสามารถทำการสตรีมการส่งข้อความและ RPC ในแอปพลิเคชันแบบกระจาย
Storm ใช้ Thrift Protocol อย่างกว้างขวางสำหรับการสื่อสารภายในและการกำหนดข้อมูล โทโพโลยีพายุเป็นเพียงThrift Structs. Storm Nimbus ที่เรียกใช้โทโพโลยีใน Apache Storm คือไฟล์Thrift service.