ระบบ Pub/Sub คืออะไร?

Nov 28 2022
เยี่ยมชม systemdesign.us สำหรับคำถามสัมภาษณ์การออกแบบระบบที่ติดแท็กโดยบริษัทและโซลูชั่นของพวกเขา

เยี่ยมชมsystemdesign.usสำหรับคำถามสัมภาษณ์การออกแบบระบบที่ติดแท็กโดยบริษัทและโซลูชั่นของพวกเขา ติดตามเราบนYouTube , LinkedIn , Twitter , Medium

ระบบ Pub/Sub คือระบบการส่งข้อความที่อนุญาตให้ผู้ใช้สมัครรับข้อมูลในหัวข้อเฉพาะและรับเฉพาะข้อความจากหัวข้อที่สมัครเท่านั้น ซึ่งมีประโยชน์สำหรับแอปพลิเคชันต่างๆ เช่น เครือข่ายสังคม ฟีดข่าว และเกม

ผับ/ซับทำงานอย่างไร?

ผู้เผยแพร่ (หรือผู้ส่งข้อความ) ส่งข้อความไปยังหัวข้อเฉพาะ จากนั้นสมาชิกทั้งหมด (หรือผู้รับข้อความ) ของหัวข้อนั้นจะได้รับข้อความ สมาชิกสามารถเลือกยกเลิกการสมัครจากหัวข้อได้ตลอดเวลา

ส่วนประกอบ Pub/Sub

https://aws.amazon.com/pub-sub-messaging/

มีสามองค์ประกอบหลักในระบบผับ/ย่อย:

หัวข้อ : ข้อความถูกจัดระเบียบเป็นหัวข้อ และผู้ใช้สามารถสมัครรับข้อมูลในหัวข้อเฉพาะเพื่อรับข้อความ

ผู้เผยแพร่ : ผู้เผยแพร่เป็นผู้ส่งข้อความและพวกเขาส่งข้อความไปยังหัวข้อเฉพาะ

สมาชิก : สมาชิกเป็นผู้รับข้อความและพวกเขาได้รับข้อความทั้งหมดจากหัวข้อที่พวกเขาสมัครรับข้อมูล

ทำไมต้องใช้ผับ/ซับ?

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 อาร์ทิมิส
  • แรบบิทเอ็มคิว