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
BeNeat เรียกแม่บ้านผ่านแอปครั้งแรก

BeNeat เรียกแม่บ้านผ่านแอปครั้งแรก

ปกติจะเป็นคนขี้เกียจทำความสะอาดห้องน้ำมาก บางครั้งปล่อยทิ้งไว้เกือบ 2 เดือน… 555+ เคยลองใช้บริการแม่บ้านในหมู่บ้านมาแล้ว 2 ชั่วโมง 600 บาท แต่ก็ไม่ค่อยประทับใจเท่าไหร่ เพราะทำความสะอาดแบบผ่าน ๆ ไม่ละเอียด ใช้อุปกรณ์ทำความสะอาดของเราด้วย เลยเริ่มมองหาทางเลือกใหม่ จนมาเจอแอป BeNeat ที่มีรีวิวดี ราคาก็ไม่ได้แรงเกินไป ดูแล้วน่าจะมีมาตรฐาน เอาวะ ลองดูสักตั้ง! ตัดสินใจจองครั้งแรกทันที หมายเหตุ: บล็อกนี้เป็นรีวิวจากประสบการณ์การใช้งานจริง ไม่ได้รับการสนับสนุนหรือสปอนเซอร์จาก BeNeat แต่อย่างใด เริ่มต้นยังไง? ดาวน์โหลดแอป BeNeat และสมัครใช้งานให้เรียบร้อย เลือกบริการทำความสะอาดทั่วไป เลือกประเภทที่พัก ในกรณีนี้เราเลือก บ้าน 2-3 ชั้น (100-200 ตร.ม.) ระบบจะแนะนำเวลา 4-6 ชั่วโมง แต่สามารถเลือกขั้นต่ำได้ที่ 2 ชั่วโมง เลือกวันและเวลา ที่ต้องการใช้บริการ ระบบจะแจ้งราคาเริ่มต้นที่ 520 บาท (ยังไม่รวม VAT 7%) กดไปยังหน้าชำระเงิน แล้วดำเนินการจ่ายเงินให้เรียบร้อย จากนั้นเราต้องรอแม่บ้านกดรับงานของเรา ซึ่งใช้เวลาไม่นาน แล้วสักพักแม่บ้านก็โทรมายืนยัน แม่บ้านมาถึงและเริ่มทำงานอย่างไร? ก่อนถึงเวลานัดหมายประมาณ 1 ชั่วโมง ระบบจะแจ้งเตือนว่าแม่บ้านกำลังเดินทางมา ไม่นานแม่บ้านก็นั่งวินมอไซค์มาถึง พร้อมอุปกรณ์ทำความสะอาดครบมือ แม่บ้านจะสอบถามว่าอยากให้ทำความสะอาดส่วนไหนบ้าง เราก็แจ้งไปว่าแค่ ห้องน้ำ 2 ห้อง จากนั้นแม่บ้าน ก็เริ่มทำงานทันที ...

June 15, 2025 · 1 min · 81 words · Teera
บันทึกการย้ายบล็อก Ghost สู่ Hugo

บันทึกการย้ายบล็อก Ghost สู่ Hugo

เมื่อความเรียบง่ายคือคำตอบ ช่วงแรกที่เริ่มเขียนบล็อก เราเลือกใช้ Ghost แบบ self-host เพราะมันดู modern, editor ใช้งานดี Ghost รันผ่าน Docker ใน homelab ที่บ้าน แล้วเชื่อมต่อออกไปข้างนอกด้วย Cloudflare Tunnel + โดเมนของเราเอง ทุกอย่างทำงานได้ดี …จนเวลาผ่านไป เราเริ่มรู้สึกว่าเวลาเปิดหน้าเว็บ มันหน่วงขึ้นนิดหน่อย ไม่มากก็จริง แต่ก็พอจะรู้สึกได้ และเริ่มน่ารำคาญขึ้นเรื่อย ๆ ที่แย่กว่านั้นคือ มีอยู่วันหนึ่งไฟที่บ้านดับยาวทั้งวัน UPS ที่ต่อกับ homelab เอาไม่อยู่ เว็บเลยดับหายไปทั้งวันแบบดื้อ ๆ 😅 ตอนนั้นแอบคิดในใจว่า “นี่เรากำลังโฮสต์บล็อกตัวเอง หรือกำลังดูแล data center กันแน่นะ” ถึงเวลาหาอะไรใหม่ที่เบากว่า จริง ๆ แล้วเราก็ไม่ได้ต้องการระบบ CMS อะไรใหญ่โตเลย เขียนโพสต์ง่าย ๆ ด้วย Markdown Publish ได้ไว ไม่ต้องรอระบบอะไรทั้งนั้น ใช้ Git จัดการเวอร์ชันได้สะดวก ไม่ต้องรัน server หรือ database ให้ปวดหัว พอลองหาดู static site generator ที่ตอบโจทย์พวกนี้ เราก็มาเจอกับ Hugo ตัวเล็ก เร็ว และเรียบง่าย Compile แต่ละรอบแค่เสี้ยววินาที ...

June 8, 2025 · 2 min · 269 words · Teera
Zigbee Repeater ช่วยทวนสัญญาณในบ้าน

Zigbee Repeater ช่วยทวนสัญญาณในบ้าน

ปกติแล้วอุปกรณ์ Zigbee จะทำงานเป็นแบบ Mesh เชื่อมต่อจาก Coordinator ไปเรื่อยๆ จนสร้างเครือข่ายครอบคลุมทั้งบ้าน ซึ่งอุปกรณ์ Zigbee ที่จะมาเชื่อมต่อเข้ากับ Coordinator ได้นั้น จะมี 2 ประเภทคือ Router และ End Device ประเภท Router จะช่วยทำการทวนสัญญาณ เพื่อช่วยให้อุปกรณ์ตัวต่อไปใช้งานได้ แต่ตัวที่เป็นปัญหาคือ End Device ทำงานแค่รับส่งข้อมูลได้อย่างเดียว ชั้น 2 บ้านเราจะเป็นสวิทช์ไฟ Zigbee ประเภท Router ใช้งานมาหลายปี จนวันนึงมันก็พัง เราจำเป็นต้องซื้ออุปกรณ์ตัวใหม่มาแทน แต่สวิทช์ไฟ Zigbee มันดันเป็นแบบ End Device (มารู้เอาตอนมันเชื่อมต่อกับ Gateway เรียบร้อยแล้ว) ช่วงแรกๆ อุปกรณ์ Zigbee ชั้น 3 มันก็จะใช้งานได้บ้าง ไม่ได้บ้าง สัญญาณอ่อน จนบางครั้งขาดหายไปเลย ก็เลยเป็นที่มาของการใช้งาน Zigbee repeater นั่นเอง สินค้าไม่ได้ระบุแบรนด์แน่ชัด แต่ใช้ซิปของ Tuya โดยอุปกรณ์ในกล่องจะมีแค่ 2 ชิ้น Zigbee repeater คู่มือภาษาอังกฤษ วิธีใช้งานต้องหา adapter 5v เพื่อจ่ายไฟให้กับตัวเครื่อง เมื่อเสียบปลั๊กไฟสีน้ำเงินจะติด เพื่อบอกสถานะการทำงาน กรณีต้องการเข้าโหมด pair ใช้วิธีถอดเสียบเจ้าตัว Zigbee repeater 3 ครั้ง ก็จะเข้าโหมด pairing และไฟสถานะจะเปลี่ยนเป็นกระพริบรัวๆ หลังจากเชื่อมต่อกับ ZHA ของ Home Assistant ลองดูประเภทของตัวเครื่อง Device Type: Router ตรงส่วน View network เขาจะทำงานต่อจาก Coordinator แล้วก็ทวนสัญญาณต่อไปยังอุปกรณ์ Zigbee ชั้น 3 นั่นเอง ...

October 20, 2024 · 1 min · 102 words · Teera
แนวทางการปรับจูน ZFS Proxmox (2024)

แนวทางการปรับจูน ZFS Proxmox (2024)

แนวทางการปรับจูน ZFS Proxmox รวบรวมจากประสบการณ์ผู้เขียนทั้งหมด หลังจากใช้งาน ZFS มาประมาณ 1 ปี อาจจะมีข้อมูลไม่ถูกต้อง 100% โปรดใช้วิจารณญาณในการอ่าน Command line ใช้งานบน Proxmox VE 8.2.4 วิธีปรับจูน ZFS properties ใช้คำสั่งเดียว ในการปรับ properties ทั้งหมด ( อ้างอิง ) zfs set atime=off compression=lz4 recordsize=1M xattr=sa rpool วิธีปรับจูน ZFS volblocksize การตั้งค่า volblocksize ต้องทำก่อนที่จะสร้าง vm โดยไปที่ Proxmox UI (Datacenter -> Storage -> local-zfs -> Edit) กำหนด 64k ( อ้างอิง ) วิธีปรับจูน ZFS ARC nano /etc/modprobe.d/zfs.conf กำหนดค่า zfs_arc_min เริ่ม 2GB และ zfs_arc_max ตามที่เราอยากให้ arc ใช้งาน ( Convert Gigabyte to Byte ) ...

June 29, 2024 · 1 min · 103 words · Teera
Zigbee Water Leak Detector

Zigbee Water Leak Detector

ย้อนกลับไปเมื่อนานมาแล้ว เราเคยประสบปัญหา น้ำท่วมบ้านเพราะว่าเครื่องกรองน้ำท่อชำรุด ซึ่งกว่าเราจะรู้ เลิกงาน ถึงบ้านประมาณ 2 ทุ่ม เดือนนั้นโดนค่าน้ำไปหลายบาท บัวผนังชำรุด จากการแช่น้ำนาน เราเลยมองหาอุปกรณ์ที่สามารถตรวจจับน้ำรั่ว รองรับ Zigbee และ Home Assistant ราคาไม่แพง! สินค้าเป็นของแบรนด์ MOES ใช้ซิปของ Tuya จำเป็นต้องมี Zigbee gateway ในการเชื่อมต่อ และสามารถเชื่อมต่อกับ Zigbee gateway ของ Tuya ได้แน่นอน แต่เราจะใช้ ZHA gateway เพื่อเชื่อมต่อเข้าไปที่ Home Assistant ด้านบนตัวเครื่องจะเป็นปุ่มกดเช็คสถานะ กด 1 ครั้งจะมีไฟแจ้งเตือนสีเขียว กดค้าง 5 วินาที คือการ reset ตัวเครื่อง เพื่อทำการ pairing gateway ด้านหลังตัวเครื่องจะมี sensor เมื่อสัมผัสโดนน้ำ จะแจ้งสถานะ พร้อมไฟแจ้งเตือนสีเขียวกระพริบ 6 ครั้ง ใช้เหรียญหมุนทวนเข็มนาฬิกา เพื่อเปิดตัวเครื่อง ข้างในจะมี battery CR2032 (ติดมากับเครื่อง) และหมุนตามเข็ม เพื่อปิดตัวเครื่อง เมื่อเชื่อมต่อกับ Home Assistant สามารถเขียน automation เช็คสถานะ sensor ได้ดังนี้ ...

June 23, 2024 · 1 min · 93 words · Teera
ขยายพื้นที่ ZFS Pool (mirror) โดยใช้ VDEV เดิม

ขยายพื้นที่ ZFS Pool (mirror) โดยใช้ VDEV เดิม

สำหรับวิธีการขยายพื้นที่ ZFS Pool แบบ mirror โดยการเปลี่ยน HDD ลูกเดิมใน VDEV (mirror-0) ให้มีขนาดใหญ่กว่าเดิม ข้อดีคือ สามารถเปลี่ยน HDD ครั้งละลูก ส่วนใครสะดวกเพิ่ม VDEV (mirror-x) สามารถอ่าน blog ก่อนหน้าได้เช่นกัน ขยายพื้นที่ ZFS Pool (mirror) Command line ใช้งานบน Proxmox VE 8.2.4 ปัจจุบันมี VDEV (mirror-0) ซึ่งขนาดพื้นที่ใช้งานคือ 2TB disk1: /dev/sdc ขนาด 2TB disk2: /dev/sdd ขนาด 2TB disk3: /dev/sde ขนาด 4TB ต้องการนำ disk3 ไปแทนที่ disk1 ls -l /dev/disk/by-id/ | grep sde ค้นหา disk by-id zpool status nas เรียกดูสถานะ zpool zpool replace poolname old_disk new_disk ...

June 21, 2024 · 1 min · 156 words · Teera
แก้ปัญหา Mini PC LAN พัง!

แก้ปัญหา Mini PC LAN พัง!

Mini PC ตัวนี้เราซื้อมือสอง ใช้งานเป็น Proxmox Cluster (pve1) ตั้งแต่ 03/2023 ก็ล่วงเลยมาประมาณปีนิดๆ แรกเริ่มเลย มันชอบมีอาการ network หลุดบ่อยๆ จนล่าสุดใช้งาน LAN Port ไม่ได้อีกเลย แม้ว่าจะมีมาให้ 2 port แนวทางแก้ไข หาซื้อ USB to LAN มาใช้แทนของเดิม และรองรับ Linux ก็ลองหาใน shopee จนไปเจอสินค้าของ Vention รุ่น USB 3.0 Gigabit Ethernet ราคา 3xx หลังจากได้รับสินค้า ก็ติดตั้งเข้าไปที่ Mini PC ผ่านทาง USB 3.0 จากนั้นก็เสียบสายแลน ต่อจอผ่าน hdmi เพราะจำเป็นต้องเช็คก่อนว่า Proxmox มันจะมองเห็นไหม? ip link show คำสั่ง show network interfaces ตอนนี้ Proxmox สามารถมองเห็น network interface ตัวใหม่แระ ip link set enx207bd2e4a424 up คำสั่ง active interfaces ...

June 8, 2024 · 1 min · 88 words · Teera
ขยายพื้นที่ ZFS Pool (mirror)

ขยายพื้นที่ ZFS Pool (mirror)

ปัจจุบันเราใช้งาน ZFS Pool แบบ mirror (เทียบเท่า raid 1) ข้อดีคือ HDD สามารถพังได้ 1 ลูก โดยข้อมูลไม่เสียหาย ส่วนการเพิ่มขยาย ZFS Pool ก็ต้องเพิ่ม HDD ทีละ 2 ลูกเช่นกัน โดยจะเพิ่ม HDD 6TB x 2 ลูก จะส่งผลให้ขนาดพื้นที่เก็บข้อมูลเพิ่มจากเดิม 2TB+6TB=8TB Command line ใช้งานบน Proxmox VE 8.2.2 zpool status poolname (เรียกดูสถานะ poolname) zpool status nas เข้าไปที่ Proxmox UI (pve -> Disks) มองหา disk ที่เพิ่มเข้ามาใหม่ /dev/sdf และ /dev/sdg จากนั้นไปค้นหา disk by-id ls -l /dev/disk/by-id/ | grep sdf ls -l /dev/disk/by-id/ | grep sdg ...

June 1, 2024 · 1 min · 182 words · Teera
วิธีย้าย Disk ZFS ไปใช้งาน Enclosure 5-bay

วิธีย้าย Disk ZFS ไปใช้งาน Enclosure 5-bay

จากบทความก่อนหน้า เราได้รีวิว HDD Enclosure 5-bay สำหรับบทความนี้ เราจะมาพูดถึงการย้าย Disk ZFS ของเดิม 2 ลูก มาใส่ที่ Enclosure 5-bay ORICO hard drive enclosure จุใจขนาด 5-bay (DS500C3) Command line ใช้งานบน Proxmox VE 8.2.2 กรณีมีการ run VM หรือ LXC โดยใช้งาน ZFS storege ตัวที่ต้องการย้าย ต้องทำการ shutdown เสียก่อน zpool export poolname (ถอด zpool ออกจากระบบ) zpool export nas ปิดเครื่อง Docking 2-bay จากนั้นถอด HDD ย้ายไปใส่ Enclosure 5-bay zpool import -d /dev/disk/by-id poolname (เพิ่ม zpool เข้าระบบ) zpool import -d /dev/disk/by-id nas อธิบายเพิ่มเติมในส่วนการ import จริงๆแล้ว เราสามารถใช้คำสั่ง zpool import poolname ได้เลย แต่แบบนั้นมันจะเป็นการ import ด้วย device name /dev/sda, /dev/sdb ซึ่งมันค่อนข้างมีความเสี่ยง เพราะเราใช้งานแบบ HDD Enclosure มีโอกาศสูงมากที่ device name มันจะเป็นตำแหน่งจาก sda ไปเป็น sdd เราเลยชอบใช้วิธี import ด้วย /dev/disk/by-id มากกว่า ...

May 21, 2024 · 1 min · 109 words · Teera