คู่มือพิมพ์เขียวเชิงลึกและการวิเคราะห์ทางเทคนิค: การปรับแต่งระบบ Express Gateway และ MockServer Netty Engine รองรับทราฟฟิกมหาศาล, การจำลองสเปกโหลดด้วย k6 Script, และแบบฝึกหัดประเมินความรู้พร้อมเฉลยละเอียด
ชื่อบท/หัวข้อหลัก: Module 8: Performance Testing, High-Throughput Tuning & Load Testing Guide
ตอบ: สมบูรณ์แบบครบทั้ง 8 โมดูล จากสถาปัตยกรรมพื้นฐาน ความปลอดภัยบน Gateway จนถึงการเค้นประสิทธิภาพสูงสุด (High Throughput & Load Testing) บทนี้จะสอนวิธียกระดับขีดความสามารถของสถาปัตยกรรม Mocking ทั้งระบบ เพื่อให้รองรับการทำ Load Testing ระดับหมื่น RPS ได้อย่างมั่นคงและปลอดภัย
วิกฤต Load Test พังค้างเมื่อเจาะทราฟฟิก 5,000 RPS
ระบบการเงินแห่งหนึ่งเตรียมรับแคมเปญใหญ่ที่คาดการณ์ทราฟฟิกไว้ที่ 5,000 RPS แต่เมื่อยิง Load Test ฝั่ง MockServer กลับพังล่มตั้งแต่น้ำหนักยิงที่ 1,000 RPS เนื่องจากคอขวดทางด้านการจัดการ Memory (JVM Heap OOM) และ Single-Thread Bottleneck ของ Express Gateway
💡 แนวทางแก้ไข: ทำการ Tuning ทั้ง Express Gateway (:3000) ด้วย PM2 Cluster Mode และปรับแต่ง Netty Engine ของ MockServer (:1080) พร้อมกำหนด JVM Heap Size ให้เหมาะสม
PM2 Cluster Mode)
# รัน Express Gateway ใน Cluster Mode เพื่อกระจายงานเต็มทุก CPU Cores
npx pm2 start proxy/server.js -i max --name "mock-gateway"
Docker & JVM Options)
docker run -d -p 1080:1080 \
-e MOCKSERVER_LOG_LEVEL="WARN" \
-e MOCKSERVER_NIO_EVENT_LOOP_THREAD_COUNT="16" \
-e JAVA_OPTS="-Xms2g -Xmx4g -XX:+UseG1GC" \
mockserver/mockserver:latest
scripts/load_test.js)
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '10s', target: 50 }, // Ramp-up
{ duration: '30s', target: 500 }, // Steady Load (500 VUs)
{ duration: '10s', target: 0 }, // Ramp-down
],
thresholds: {
http_req_failed: ['rate<0.01'], // Error Rate < 1%
http_req_duration: ['p(95)<50'], // 95% of requests < 50ms
},
};
export default function () {
const res = http.post('http://localhost:3000/api/v1/payments',
JSON.stringify({ amount: 500 }),
{ headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer eyJhbG...' } }
);
check(res, { 'status is 200': (r) => r.status === 200 });
sleep(0.1);
}
คลิกเลือกคำตอบข้อที่ถูกต้อง ระบบจะตรวจให้คะแนนและแสดงผลเฉลยพร้อมคำอธิบายทันที!
คะแนนของคุณคือ ...
เนื้อหาและแบบฝึกหัดทั้งหมดในวันนี้ ตอบและสะท้อนชื่อบท Module 8: Performance Testing, High-Throughput Tuning & Load Testing Guide อย่างสมบูรณ์: การปรับแต่งระบบ Express Gateway และ MockServer Netty Engine ช่วยเติมเต็มศักยภาพให้คุณสามารถควบคุมระบบ API Mocking ในระดับ Production ได้อย่างมั่นใจ ทั้งด้านความเสถียร สถาปัตยกรรม และการทนทานต่อทราฟฟิกขนาดใหญ่ครับ! 🌟