แนะนำ Azure Service Bus

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

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

Queue Storage เทียบกับ Service Bus

Queue Storage

  • รายการงานแบบเรียบง่าย
  • ไม่มีฟีเจอร์ขั้นสูง
  • แต่ละข้อความถูกประมวลผลครั้งเดียว

Service Bus

  • ระบบส่งข้อความระดับองค์กร
  • รับประกันการส่งที่แข็งแกร่งกว่า
  • การกำหนดเส้นทางที่ยืดหยุ่นกว่า
  • ฟีเจอร์การประสานงาน
  • รองรับ consumer ได้หลายราย

Queue Storage

Service Bus

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

Service Bus Queues

  • Point-to-point:
    • เมื่อ producer ส่งข้อความ
    • consumer หนึ่งรายจะรับข้อความนั้น
    • ข้อความถูกประมวลผลครั้งเดียว
  • คล้ายกับการทำงานของ Queue Storage

โลโก้ Service Bus

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

Service Bus Topics

  • โมเดล Publish-subscribe
    • producer หลายรายส่งข้อความ
    • consumer หลายรายรับข้อความเดียวกันได้
  • แต่ละ subscription กรองข้อความได้:
    • แต่ละ subscription รับเฉพาะที่เกี่ยวข้อง
  • queue เปรียบเหมือน inbox เดียว
  • topic เปรียบเหมือนรายชื่อผู้รับจดหมาย

Service Bus Topic

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

ความเชื่อถือได้ของข้อความ

  • ความเชื่อถือได้ในตัว:
    • จัดการข้อผิดพลาดโดยอัตโนมัติ
    • ลองใหม่อัตโนมัติ
  • Dead-letter queue:
    • สำหรับข้อความที่ล้มเหลว
    • ตรวจสอบข้อความเหล่านั้นได้

ความเชื่อถือได้ของข้อความ

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

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

  • การตรวจจับข้อความซ้ำ ป้องกันไม่ให้ข้อความถูกประมวลผลมากกว่าหนึ่งครั้ง

  • หาก sender ส่งซ้ำและข้อความเดิมมาถึงอีกครั้ง ระบบจะตรวจจับด้วย message ID

  • ข้อความซ้ำจะถูกละทิ้งภายในช่วงเวลาที่กำหนด

  • ช่วยให้บรรลุการประมวลผลแบบ exactly-once แม้มีการส่งซ้ำจากเครือข่าย

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

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

การประมวลผลตามลำดับ

Service Bus Sessions

  • Service Bus Sessions รองรับการประมวลผลข้อความตามลำดับ

  • ข้อความที่เกี่ยวข้องกันใช้ Session ID เดียวกัน (เช่น การอัปเดตทั้งหมดของออเดอร์เดียวกัน)

  • แต่ละ session ส่งไปยังผู้รับหนึ่งรายในแต่ละช่วงเวลา

  • ลำดับข้อความถูกรักษาไว้ภายใน session และ consumer เก็บสถานะขนาดเล็กได้

  • หลาย session ประมวลผลแบบขนานได้ ขณะที่แต่ละ session ยังคงเรียงตามลำดับ

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

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

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

Preparing Video For Download...