SOFTWARE ENGINEERING

Go 1.27 เพิ่มประสิทธิภาพการนำ HTTP/1 Connection กลับมาใช้ใหม่

Go Blog14 Oct 2026
1 min read
Key Takeaways
  • 27 จัดการการคืนทรัพยากร HTTP/1 Connection ได้ดีขึ้นโดยอัตโนมัติ ช่วยลดปัญหาความล่าช้าจากการสร้าง Connection ใหม่โดยที่ผู้พัฒนาไม่ต้องปรับแก้โค้ดอย่างซับซ้อน

ทำไมเรื่องนี้ถึงสำคัญ

การปรับปรุงนี้ช่วยแก้ปัญหาคอขวดด้านประสิทธิภาพที่มักพบในแอปพลิเคชันที่ติดต่อสื่อสารผ่าน HTTP/1.1 โดยที่ผู้พัฒนาอาจไม่ทราบว่าโค้ดที่เขียนส่งผลต่อการสร้าง Connection ใหม่โดยไม่จำเป็น ช่วยลดภาระของเซิร์ฟเวอร์และลดเวลาตอบสนองของระบบ

ในเวอร์ชันก่อนหน้าของภาษา Go การนำ HTTP/1 connection กลับมาใช้ใหม่ (Reuse) จะล้มเหลวหากผู้พัฒนาไม่ได้อ่านข้อมูลใน Response Body ให้ครบถ้วน ส่งผลให้ระบบต้องสร้างการเชื่อมต่อใหม่ซ้ำๆ ซึ่งเพิ่มภาระ Latency จากการทำ TCP และ TLS Handshake อย่างมาก

ใน Go 1.27 ทีมพัฒนาได้ปรับปรุงให้แพ็กเกจ net/http มีความชาญฉลาดมากขึ้น โดยระบบจะพยายามเคลียร์ข้อมูลใน Body ที่เหลืออยู่ให้โดยอัตโนมัติในเบื้องหลังเมื่อมีการเรียก Body.Close() ภายใต้เงื่อนไขที่เหมาะสม ช่วยให้การเชื่อมต่อถูกนำกลับมาใช้ใหม่ได้ทันที ผลการทดสอบเบื้องต้นพบว่าสามารถเพิ่มความเร็วในการเรียก API ซ้ำๆ ได้สูงสุดถึง 5 เท่าในบางกรณี

สรุปประเด็นหลัก

ลด Latency ในการเรียก HTTP/1 ได้สูงสุด 5 เท่าในบางสถานการณ์

ระบบจะช่วย Drain Response Body ให้อัตโนมัติเมื่อมีการสั่ง Close

ช่วยลดภาระงานของ CPU ในการทำ TLS Handshake ซ้ำๆ

นวัตกรรมและเทคโนโลยี

infrastructure

Automatic HTTP/1 Body Draining

กลไกการล้างข้อมูลใน Response Body ที่เหลืออยู่โดยอัตโนมัติเพื่อให้สามารถนำ Connection เดิมกลับมาใช้งานใหม่ได้

Developer Impact
นักพัฒนา Go ไม่จำเป็นต้องเขียนฟังก์ชัน Drain Body ด้วยตนเองอีกต่อไป ประสิทธิภาพของแอปพลิเคชันที่ใช้ HTTP/1 จะดีขึ้นทันทีเมื่ออัปเกรดเป็นเวอร์ชัน 1.27
Keywords
#go #golang #http #networking #performance
Original Source

อ่านข้อมูลเพิ่มเติมจากแหล่งข่าวหลัก

Go Blog