การใช้งาน Azure Storage Queues

พัฒนาแอปพลิเคชันบน Azure Storage

Shahzad Mian

Content Developer, DataCamp

แนะนำ Storage Queues

  • Storage queues คือบริการจัดคิวข้อความ
  • แอปพลิเคชันมักรับคำขอจำนวนมากพร้อมกัน
  • การรอให้แต่ละกระบวนการเสร็จสิ้นอาจทำให้ระบบช้าลง
  • Azure Storage Queues รองรับการสื่อสารแบบ asynchronous ระหว่างคอมโพเนนต์
  • การส่งข้อความแบบ asynchronous ช่วยรักษาความเร็วและ scalability

การแก้ปัญหาด้วย Storage queue

พัฒนาแอปพลิเคชันบน Azure Storage

ความท้าทายในโลกจริง

ปัญหาและแนวทางแก้ไขเมื่อออเดอร์ล้นระบบ

  • ร้านออนไลน์ Cipher Coffee รับออเดอร์นับร้อยรายการพร้อมกัน
  • หากไม่มีคิว ออเดอร์แต่ละรายการต้องรอรายการก่อนหน้าเสร็จก่อน
  • คิวช่วยให้รับออเดอร์ได้ทันที และค่อยประมวลผลภายหลัง
  • เว็บไซต์จึงทำงานได้รวดเร็วและลูกค้าพึงพอใจ
พัฒนาแอปพลิเคชันบน Azure Storage

คิวคืออะไร?

  • คิวคือแถวรอสำหรับข้อความที่จะถูกประมวลผล
  • ข้อความถูกประมวลผลตามลำดับ: เข้าก่อน ออกก่อน
  • แต่ละข้อความแทนงานย่อยหนึ่งหน่วย
  • เมื่อประมวลผลเสร็จ ข้อความจะถูกลบออกจากคิว

แผนภาพคิว

พัฒนาแอปพลิเคชันบน Azure Storage

Azure Storage Queues ทำงานอย่างไร

อธิบายการทำงานของคิว

  • Azure Storage Queues เป็นส่วนหนึ่งของ Storage account
  • ข้อความมีขนาดได้สูงสุด 64 KB และจัดเก็บอย่างถาวร
  • แอปพลิเคชันสามารถ:
    • ส่งข้อความไปยังคิว
    • รับและประมวลผลข้อความ
    • ลบข้อความเมื่อดำเนินการเสร็จสิ้น
  • ข้อความยังคงอยู่แม้ระบบจะรีสตาร์ท
พัฒนาแอปพลิเคชันบน Azure Storage

กระบวนการทำงานแบบ asynchronous

 

 

กระบวนการทำงานแบบ asynchronous

  • ผู้ส่งเพิ่มข้อความ เช่น "Process payment for Order 2045"
  • บริการเบื้องหลัง เช่น Azure Function ดึงข้อความไปประมวลผล
  • เมื่อประมวลผลสำเร็จ ข้อความจะถูกลบออก
  • รูปแบบนี้ช่วยให้ระบบรองรับโหลดได้ดีและตอบสนองได้รวดเร็ว
พัฒนาแอปพลิเคชันบน Azure Storage

Cipher Coffee ในการใช้งานจริง

  • เว็บไซต์ Cipher Coffee ส่งข้อความออเดอร์ไปยังคิว
  • ระบบจัดการออเดอร์อ่านข้อความจากคิว
  • ข้อความดังกล่าวทริกเกอร์การอัปเดตฐานข้อมูลและระบบชำระเงิน
  • บาริสต้าได้รับการแจ้งเตือนโดยไม่กระทบต่อขั้นตอนชำระเงินของลูกค้า

กระบวนการออเดอร์

พัฒนาแอปพลิเคชันบน Azure Storage

ประโยชน์ของคิว

  • Decoupling: ระบบทำงานได้อิสระจากกัน
  • Scalability: เพิ่ม worker เพื่อประมวลผลข้อความได้เร็วขึ้น
  • Reliability: ข้อความยังคงอยู่แม้ระบบหยุดทำงาน
  • Integration: ทำงานร่วมกับ Azure Functions และ Logic Apps

ระบบที่ทำงานอิสระ

ระบบที่รองรับการขยายตัว

ระบบที่เชื่อถือได้

Screenshot 2025-10-27 at 5.42.20 pm.png

พัฒนาแอปพลิเคชันบน Azure Storage

วงจรชีวิตของข้อความ

Screenshot 2025-10-27 at 5.48.34 pm.png

  • ข้อความผ่าน 3 ขั้นตอนหลัก:
    • Enqueue: เพิ่มข้อความเข้าคิว
    • Dequeue: Worker ดึงข้อความไปประมวลผล
    • Delete: ลบข้อความเมื่อประมวลผลสำเร็จ
  • ข้อความที่ล้มเหลวจะปรากฏขึ้นอีกครั้งโดยอัตโนมัติเพื่อลองใหม่
พัฒนาแอปพลิเคชันบน Azure Storage

กรณีการใช้งานทั่วไป

  • การประมวลผลออเดอร์และการเรียกเก็บเงินเบื้องหลัง

ไอคอนออเดอร์

  • การส่งอีเมลแจ้งเตือน

ไอคอนอีเมล

  • การบัฟเฟอร์ข้อมูล telemetry จาก IoT

ไอคอน IoT

  • การรวบรวม log และ event pipeline
    • ใช้คิวสำหรับงานที่ต้องทำงานอิสระและรองรับการลองใหม่
    • และอีกมากมาย
พัฒนาแอปพลิเคชันบน Azure Storage

Queues vs Service Bus

  • Azure Service Bus ใช้สำหรับสถานการณ์การส่งข้อความขั้นสูง
  • Service Bus รองรับ:
    • การเรียงลำดับข้อความและ session
    • Transaction และ topic/subscription
  • Azure Storage Queues ง่ายกว่าและคุ้มค่ากว่าสำหรับงานที่ไม่ซับซ้อน
  • Cipher Coffee ใช้คิวสำหรับการประมวลผลออเดอร์และการอัปเดตแบบ real-time

Screenshot 2025-10-27 at 6.13.37 pm.png

พัฒนาแอปพลิเคชันบน Azure Storage

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

พัฒนาแอปพลิเคชันบน Azure Storage

Preparing Video For Download...