ทำไม Pub/Sub Subscription ถึงหายไป?

ทำไม Pub/Sub Subscription ถึงหายไป?

วันหนึ่ง… อยู่ ๆ Subscription ของ Pub/Sub ที่เราคุ้นเคยก็หายไปจากระบบซะงั้น ตอนแรกคือใจหายวาบเลย คิดในใจ หรือว่าเราเผลอกดลบเอง? หรือมีใครไปจัดการอะไรบางอย่างรึเปล่า? แต่พอไล่หาสาเหตุจริง ๆ แล้ว ความจริงก็คือ Pub/Sub มันมี “ค่า default” ที่ชื่อว่า Expiration period กำหนดมาให้กับทุก Subscription อยู่แล้ว Expiration period คืออะไร? พูดง่าย ๆ ก็คืออายุการใช้งานของ Subscription ถ้าไม่มี activity consume message ภายใน 31 วัน (default Subscription จะหายไปเองจากระบบ) ซึ่งจริง ๆ แล้วสามารถตั้งค่าได้สูงสุด 365 วัน แต่ถ้าไม่อยากปวดหัวกับการตามหาว่า “มันหายไปไหน” ก็แนะนำให้ตั้งค่าเป็น Never expire ไปเลย จะได้ไม่ต้องลุ้น! บทเรียนที่ได้ บางทีสิ่งที่เราคิดว่าตัวเอง “ทำหาย” จริง ๆ แล้วมันอาจจะเป็นที่ระบบเองที่จัดการให้ตามค่า default เลยอยากบันทึกไว้เป็น “ความไม่รู้ในวันนั้น” เผื่ออนาคตเจออีก จะได้ไม่งงเหมือนเดิม 🙂 ...

September 23, 2025 · 1 min · 66 words · Teera
Pub/Sub ลำดับข้อความเพี้ยน เพราะลืมเปิด Message Ordering

Pub/Sub ลำดับข้อความเพี้ยน เพราะลืมเปิด Message Ordering

ก่อนหน้านี้เราใช้ Kafka เป็นหลัก ก็เลยชินกับการที่ข้อความในแต่ละ partition จะเรียงลำดับ พอเริ่มใช้ Google Cloud Pub/Sub จริงจังครั้งแรก ก็คิดว่า “มันก็น่าจะคล้าย ๆ กันแหละ…” แต่ความจริงคือ Pub/Sub ไม่จัดลำดับข้อความให้โดยอัตโนมัติ และเราก็เพิ่งรู้ตอนที่เจอปัญหาแล้ว 😅 ปัญหาที่เจอ อยู่ดี ๆ service ฝั่ง consumer เริ่มประมวลผลข้อความสลับลำดับ ทั้งที่ฝั่ง publisher ส่งมาเรียงตามลำดับที่ต้องการ เช่น: message 1 message 2 แต่กลับกลายเป็นว่า message 2 มาถึงก่อน message 1 ซะอีก ลองเช็กดูถึงรู้ว่า… Pub/Sub จะไม่เรียงลำดับข้อความ หากเราไม่ได้เปิด “Message Ordering” ตอนสร้าง subscription และที่สำคัญคือ ถ้าไม่ได้เปิดไว้ตั้งแต่แรก จะมาเปิดทีหลังไม่ได้ วิธีที่เราแก้ เราต้องลบ subscription เดิม แล้วสร้างใหม่ โดยเปิดตัวเลือก Enable message ordering ผ่าน Command Line: gcloud pubsub subscriptions create my-subscription \ --topic=my-topic \ --enable-message-ordering ผ่าน Google Cloud Console: ...

June 17, 2025 · 1 min · 145 words · Teera