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.