ระบบ Pub/Sub คืออะไร?
เยี่ยมชมsystemdesign.usสำหรับคำถามสัมภาษณ์การออกแบบระบบที่ติดแท็กโดยบริษัทและโซลูชั่นของพวกเขา ติดตามเราบนYouTube , LinkedIn , Twitter , Medium
ระบบ Pub/Sub คือระบบการส่งข้อความที่อนุญาตให้ผู้ใช้สมัครรับข้อมูลในหัวข้อเฉพาะและรับเฉพาะข้อความจากหัวข้อที่สมัครเท่านั้น ซึ่งมีประโยชน์สำหรับแอปพลิเคชันต่างๆ เช่น เครือข่ายสังคม ฟีดข่าว และเกม
ผับ/ซับทำงานอย่างไร?
ผู้เผยแพร่ (หรือผู้ส่งข้อความ) ส่งข้อความไปยังหัวข้อเฉพาะ จากนั้นสมาชิกทั้งหมด (หรือผู้รับข้อความ) ของหัวข้อนั้นจะได้รับข้อความ สมาชิกสามารถเลือกยกเลิกการสมัครจากหัวข้อได้ตลอดเวลา
ส่วนประกอบ Pub/Sub
มีสามองค์ประกอบหลักในระบบผับ/ย่อย:
หัวข้อ : ข้อความถูกจัดระเบียบเป็นหัวข้อ และผู้ใช้สามารถสมัครรับข้อมูลในหัวข้อเฉพาะเพื่อรับข้อความ
ผู้เผยแพร่ : ผู้เผยแพร่เป็นผู้ส่งข้อความและพวกเขาส่งข้อความไปยังหัวข้อเฉพาะ
สมาชิก : สมาชิกเป็นผู้รับข้อความและพวกเขาได้รับข้อความทั้งหมดจากหัวข้อที่พวกเขาสมัครรับข้อมูล
ทำไมต้องใช้ผับ/ซับ?
Pub/sub มีประโยชน์สำหรับแอปพลิเคชันที่ต้องการการอัปเดตตามเวลาจริงจากแหล่งที่มาที่หลากหลาย ตัวอย่างเช่น แอปโซเชียลเน็ตเวิร์กอาจต้องแสดงการอัปเดตของผู้ใช้จากเพื่อน ตลอดจนข่าวสารและเนื้อหาอื่นๆ เมื่อใช้ pub/sub แอปสามารถรับข้อความทั้งหมดเหล่านี้ได้แบบเรียลไทม์ โดยไม่ต้องสำรวจข้อมูลใหม่อย่างต่อเนื่อง
ประโยชน์ของผับ/ซับคืออะไร?
การใช้ Pub/Sub มีประโยชน์หลายประการ:
- การอัปเดตตามเวลาจริง: สมาชิกสามารถรับข้อความได้ทันทีที่มีการเผยแพร่ โดยไม่ต้องรอช่วงเวลาการสำรวจปกติ
- การสมัครสมาชิกที่ยืดหยุ่น: สมาชิกสามารถเลือกสมัครรับข้อมูลเฉพาะหัวข้อที่พวกเขาสนใจ และสามารถยกเลิกการสมัครได้ทุกเมื่อ
- ความสามารถในการปรับขนาด: ระบบ Pub/Sub สามารถปรับขนาดเพื่อรองรับหัวข้อและสมาชิกจำนวนมากได้อย่างง่ายดาย
- ช่วยให้สามารถสื่อสารแบบเรียลไทม์ระหว่างผู้เผยแพร่และสมาชิก
- เป็นระบบที่ปรับขนาดได้ซึ่งสามารถรองรับหัวข้อและสมาชิกจำนวนมากได้
- มีความยืดหยุ่นเนื่องจากสมาชิกสามารถเลือกได้ว่าต้องการรับข้อความจากหัวข้อใด
มีข้อเสียบางประการในการใช้ pub/sub:
- ไม่รับประกันการส่งข้อความ: เนื่องจากข้อความจะถูกส่งแบบอะซิงโครนัส จึงไม่มีการรับประกันว่าสมาชิกทุกคนจะได้รับข้อความเหล่านั้น ซึ่งหมายความว่าข้อความบางส่วนอาจหายไปหากสมาชิกออฟไลน์หรือข้อความล่าช้าด้วยเหตุผลบางประการ
- เวลาแฝงที่สูงขึ้น: การส่งข้อความแบบอะซิงโครนัสอาจส่งผลให้มีเวลาแฝงสูงกว่าการส่งข้อความแบบซิงโครนัส (เช่น กับระบบการส่งข้อความแบบเดิม)
- ประวัติข้อความจำกัด: ระบบ Pub/Sub ส่วนใหญ่จะติดตามเฉพาะข้อความล่าสุดสำหรับแต่ละหัวข้อ หมายความว่าสมาชิกจะได้รับข้อความใหม่หลังจากที่สมัครรับข้อมูลแล้วเท่านั้น นี่อาจเป็นปัญหาสำหรับแอปพลิเคชันที่ต้องการประวัติข้อความที่สมบูรณ์
- ผู้เผยแพร่ต้องทราบหัวข้อของข้อความเพื่อส่งไปยังสมาชิกที่ถูกต้อง
- สมาชิกอาจได้รับข้อความที่พวกเขาไม่สนใจหากสมัครรับหัวข้อมากเกินไป
- ไม่มีการรับประกันว่าข้อความจะถูกส่งตามลำดับหรือทั้งหมด
รายชื่อเทคโนโลยี Pub/Sub
- อาปาเช่ คาฟคา
- บริการแจ้งเตือนอย่างง่ายของ Amazon (SNS)
- Google Cloud Pub/Sub
- ตารางเหตุการณ์ Microsoft Azure
- IBM Cloud Pub/Sub
- เซิร์ฟเวอร์สตรีมมิ่ง NATS
- CloudEvents
- ม.ค.ท
- เหยียบ
- เว็บฮุค
- อาปาเช่ ActiveMQ อาร์ทิมิส
- แรบบิทเอ็มคิว