Sessions, auto-forwarding และ partitions

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

ภาพรวม Session

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

ภาพรวม Sessions

  • การเรียงลำดับตาม Session
    • ใช้ Session ID
    • หนึ่ง session ต่อ consumer
    • ข้อความอยู่ในลำดับที่ถูกต้อง
  • State ขนาดเล็กเพื่อ:
    • รองรับการ restart
    • สร้าง FIFO queue ที่สะอาด
    • รองรับ session พร้อมกันจำนวนมาก

ภาพรวม Service Bus Sessions

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

Dead lettering และ auto-forwarding

Dead lettering

  • ข้อความที่ล้มเหลว
  • ปลดบล็อกเส้นทางข้อความหลัก

Auto-forwarding

  • ส่งต่อไปยัง queue หรือ topic แยก
  • ใช้ในกระบวนการ diagnostics
  • ใช้สำหรับการลองใหม่ (retry)

Dead-lettering

Auto-forwarding

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

การตรวจจับข้อความซ้ำ

  • การเชื่อมต่อเครือข่ายอาจขัดข้อง
    • ทำให้ต้องส่งข้อความซ้ำ
    • การประมวลผลซ้ำซ้อนเป็นปัญหา
  • การตรวจจับข้อความซ้ำ:
    • ใช้ message ID ที่ไม่ซ้ำกัน
    • จับคู่กับช่วงเวลา (time window)
    • ละทิ้งข้อความที่มี ID เดียวกัน
  • แต่ละข้อความถูกประมวลผลเพียงครั้งเดียว

แผนภาพการตรวจจับข้อความซ้ำ

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

Partitions สำหรับ throughput สูง

Partitions ใน Service Bus

  • กระจายข้ามหลาย broker
    • ประมวลผลข้อความแบบขนาน
    • เพิ่มความยืดหยุ่น
  • ยังคงใช้ API เดิม
    • Service Bus จัดการการกระจาย
    • ใช้ connection string เดิม
พัฒนา Solution แบบ Event-based และ Message-based บน Azure

สรุปภาพรวมทั้งหมด

สรุป Service Bus

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

มาฝึกกันเถอะ!

พัฒนา Solution แบบ Event-based และ Message-based บน Azure

Preparing Video For Download...