api ลงทะเบียน 30 ล้านใน 15 นาที

รีวิวทำ api ลงทะเบียน 30 ล้านใน 15 นาที


stack ที่ใช้คือ nodejs/fastify, kafka, mongodb sharding บน digitalocean

load test: wrk บน google cloud

tools ที่ใช้มี terraform, ansible, atop, htop, speedometer


การทำงานหลักๆ คือส่งข้อมูลลงทะเบียน มีการตรวจสอบการลงซ้ำ

ใช้ kafka รับข้อมูลจาก web และส่งข้อมูลไป api ที่ทำหน้าที่ติดต่อ db

สามารถ scale web เพื่อรับ load มากขึ้นได้


ใช้ nodejs ซึ่งพัฒนาได้ไว performance ดี memory ไม่บวม


ข้อดีของ stack ที่นำมาใช้งาน


  1. Node.js/Fastify: Node.js เป็นภาษาที่มีประสิทธิภาพสูงและสามารถพัฒนาได้เร็ว ทำให้เหมาะสำหรับการสร้าง API ที่ต้องการรองรับการโหลดที่สูง และ Fastify เป็นเฟรมเวิร์คที่มีประสิทธิภาพสูงสำหรับ Node.js ที่ช่วยให้การพัฒนา API สามารถทำได้เร็วขึ้น
  2. Kafka: Kafka เป็นระบบข้อความแบบ distributed ที่สามารถรองรับการโหลดที่สูง ทำให้เหมาะสำหรับการรับข้อมูลจาก web และส่งข้อมูลไปยัง API ที่ติดต่อกับฐานข้อมูล
  3. MongoDB Sharding: MongoDB เป็นฐานข้อมูล NoSQL ที่สามารถ scale ได้ดี และ sharding ช่วยให้สามารถแบ่งข้อมูลไปยังหลายๆ ฐานข้อมูล เพื่อรองรับการโหลดที่สูง
  4. DigitalOcean: DigitalOcean เป็นผู้ให้บริการ cloud ที่มีความยืดหยุ่นและมีราคาที่เหมาะสม ทำให้เหมาะสำหรับการ deploy และ scale ระบบ
  5. Load Test (wrk) บน Google Cloud: wrk เป็นเครื่องมือที่ใช้ทดสอบการโหลดของระบบ และการใช้ Google Cloud ช่วยให้สามารถทดสอบการโหลดจากหลายๆ จุดในโลกได้
  6. Tools (Terraform, Ansible, atop, htop, speedometer): เครื่องมือเหล่านี้ช่วยในการจัดการและตรวจสอบสถานะของระบบ ทำให้สามารถตรวจสอบและแก้ไขปัญหาที่เกิดขึ้นได้เร็วขึ้น


ตัวอย่างตามรูปด้านล่างเลยครับ


0
196