บทนำ (การวิเคราะห์จุดเจ็บปวด)

เมื่อปริมาณการเข้าชมสูงสุดในช่วงโปรโมชันเพิ่มขึ้นจากระดับหมื่นเป็นล้านหรือแม้กระทั่งระดับพันล้าน ระบบการสั่งซื้อของคุณกำลังเผชิญกับความท้าทายร้ายแรงต่อไปนี้หรือไม่?

  • ฐานข้อมูลไม่สามารถรับภาระได้​: ฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม (เช่น MySQL) ภายใต้การเขียนคำขอคำสั่งซื้อจำนวนมหาศาลในทันที จำนวน IOPS และการเชื่อมต่อถึงขีดจำกัดอย่างรวดเร็ว ส่งผลให้ความล่าช้าในการตอบสนองพุ่งสูงขึ้น และในที่สุดทำให้ระบบชะงักหรือล่ม ส่งผลกระทบโดยตรงต่อมูลค่าการซื้อขาย
  • ปัญหาการขายสินค้าเกินสต็อก​: ในสถานการณ์ที่มีการเข้าถึงพร้อมกันสูง การล็อคธุรกรรมฐานข้อมูลเพียงอย่างเดียวหรือการล็อคในระดับแอปพลิเคชันล้มเหลวง่าย นำไปสู่ปรากฏการณ์ “การขายเกินสต็อก” ในกระบวนการหักลบสินค้าคงคลัง ซึ่งสร้างความเสียหายอย่างร้ายแรงต่อความน่าเชื่อถือของแพลตฟอร์มและนำไปสู่การร้องเรียนจากลูกค้า
  • ระบบไม่มีความเสถียร​: ความล้มเหลวของบริการหรือโหนดฐานข้อมูลเพียงอย่างเดียวอาจทำให้เกิด “ผลกระทบหิมะถล่ม” ในแอปพลิเคชันทั้งหมด ส่งผลให้บริการทั้งเว็บไซต์ไม่สามารถใช้งานได้ และประสบการณ์ของผู้ใช้ลดลงถึงจุดต่ำสุด

หากคุณกำลังประสบปัญหากับระบบที่ล่าช้าเนื่องจากคำสั่งซื้อพร้อมกันจำนวนมาก ความเสี่ยงในการขายสินค้าเกินสต็อก และต้นทุนการบำรุงรักษาที่สูง บทความนี้จะให้โซลูชันที่ครบถ้วนและผ่านการทดสอบจริง โดยอิงจากผลิตภัณฑ์หลักของ Tencent Cloud ​

แผนภาพสถาปัตยกรรมและภาพรวมของโซลูชัน

แผนงานนี้ใช้ ​“การจำกัดการเข้าถึงที่ชั้นการเชื่อมต่อ -> การสกัดกั้นที่ชั้นแคช -> การเก็บถาวรที่ชั้นฐานข้อมูล”แนวคิดการออกแบบการลดยอดเขาที่เป็นชั้น โดยใช้ผลิตภัณฑ์หลักหลายรายการของ Tencent Cloud เพื่อสร้างระบบการสั่งซื้อพร้อมกันสูงที่เสถียร มีประสิทธิภาพ และยืดหยุ่น

แผนภาพสถาปัตยกรรม

11/11 ระดับพันล้านออร์เดอร์ไม่ล่าช้า: โซลูชันสถาปัตยกรรมแคชแบบกระจาย TDSQL-C ของ Tencent Cloud และ Redis - LikaCloud

ภาพรวมขั้นตอนการทำงาน:\n​:

  1. 1.คำขอของผู้ใช้จะผ่าน ​เกตเวย์ API ของ Tencent Cloudเพื่อตรวจสอบสิทธิ์และจำกัดอัตราการเข้าถึงอย่างแม่นยำ โดยจะบล็อกคำขอที่ไม่มีผลและมากเกินไปออกนอกระบบ
  2. 2.คำขอที่ผ่านการตรวจสอบจะเข้าสู่ชั้นตรรกะทางธุรกิจ โดยการดำเนินการหลักคือการเรียกใช้ ​Tencent Cloud Redisการหักล่วงหน้าของคำสั่งอะตอม ​ ช่วยแก้ปัญหาการขายเกินและรับมือกับแรงกดดันจากการทำงานพร้อมกันส่วนใหญ่
  3. 3.หลังจากหักลบสต็อกสำเร็จ ข้อมูลคำสั่งซื้อจะถูกเขียนแบบอะซิงโครนัสเข้าไปในคิวข้อความ และในที่สุดบริการผู้บริโภคจะเขียนลงไปอย่างราบรื่นTencent Cloud TDSQL-C​ อย่างราบรื่นเพื่อการเก็บถาวรขั้นสุดท้าย เพื่อหลีกเลี่ยงการสร้างผลกระทบต่อฐานข้อมูล

คำอธิบายโดยละเอียดเกี่ยวกับผลิตภัณฑ์หลักและส่วนประกอบ

ส่วนประกอบหลักบทบาทที่ทำหน้าที่คำแนะนำการกำหนดค่า/การเลือกแบบสำคัญเหตุใดจึงเลือกมัน
เกตเวย์ API ของ Tencent Cloudจุดเข้าใช้งานหลักและการป้องกันรับผิดชอบการรับรองการร้องขอ การตรวจสอบสิทธิ์ การควบคุมปริมาณการใช้งาน การแคชและการตัดวงจร เพื่อปกป้องกลุ่มธุรกิจหลังบ้านไม่ให้ถูกโจมตีกำหนดค่า /createOrderสำหรับอินเทอร์เฟซหลักเช่นQPS การจำกัดอัตรา; เปิดใช้งานการแคชการตอบสนองเพื่อจัดการกับคำขอซ้ำ เช่น การสอบถามข้อมูลสินค้าไม่ต้องเขียนโค้ดก็สามารถจัดการการไหลเวียนข้อมูลขั้นสูงได้ ให้บริการระดับเข้าสู่ระบบที่มีความพร้อมใช้งานสูงและยืดหยุ่นสูง เป็นการรับประกันความมั่นคงของระบบในระดับแรก
Tencent Cloud Redisศูนย์ควบคุมแคชและสต็อกประสิทธิภาพสูงรับผิดชอบการแคชข้อมูลที่ได้รับความนิยมสูง (ข้อมูลสินค้า) และผ่านทาง DECRคำสั่งพื้นฐานเช่น เพื่อทำการหักล่วงหน้าสต็อก แก้ไขปัญหาการขายเกินอย่างสมบูรณ์เลือกหน่วยความจำสเปคเพื่อรับประกันประสิทธิภาพสูงสุด แนะนำให้เปิดใช้งานการคงอยู่ของข้อมูลฟังก์ชันเพื่อป้องกันการสูญเสียข้อมูล ใช้โหมดRedis คลัสเตอร์เพื่อขยายความจุและประสิทธิภาพมอบเสถียรภาพและประสิทธิภาพที่เหนือกว่า Redis ที่สร้างเองมาก พร้อมความสามารถในการสลับโหมดเมื่อเกิดข้อผิดพลาดอัตโนมัติและการขยายขนาดออนไลน์ ซึ่งเป็นกุญแจสำคัญในการจัดการกับการอ่านและเขียนพร้อมกันสูงในทันที
Tencent Cloud TDSQL-C (รุ่น PostgreSQL)เครื่องยนต์เก็บข้อมูลถาวรที่มีความพร้อมใช้งานสูงรับผิดชอบในการจัดเก็บข้อมูลคำสั่งซื้อทั้งหมดอย่างปลอดภัยและเชื่อถือได้ในที่สุด เป็น “แหล่งที่มาของความจริงเพียงหนึ่งเดียว” ของธุรกรรมใช้Serverlessขยายรูปแบบหรือโหนดการคำนวณอย่างยืดหยุ่น เพื่อรับมือกับความผันผวนของปริมาณการใช้งานอินสแตนซ์แบบอ่านอย่างเดียวรับผิดชอบการสืบค้นรายงานเพื่อลดภาระของฐานข้อมูลหลักสถาปัตยกรรม Cloud-native ทำให้มีความสามารถในการขยายตัวอย่างยืดหยุ่นสูงสุดและมีราคาที่คุ้มค่า ประสิทธิภาพการเขียนยอดเยี่ยม เข้ากันได้อย่างสมบูรณ์กับ PostgreSQL รับประกันความสอดคล้องและความน่าเชื่อถือของข้อมูลที่แข็งแกร่ง

สรุปข้อดีของแผน

  • ⚡ การจัดการปริมาณการใช้งานสูงสุด​: การทำงานในหน่วยความจำของ Redis ร่วมกับการจำกัดปริมาณการเข้าถึงผ่าน API Gateway สามารถรับมือกับคำขอทันทีที่สูงถึงล้าน QPS ได้อย่างง่ายดาย เพื่อรับประกันความลื่นไหลของกระบวนการสั่งซื้อ
  • ?️ ข้อมูลเชื่อถือได้อย่างแน่นอน​: คำสั่งอะตอมของ Redis ป้องกันการขายเกินสต็อก TDSQL-C ให้ความทนทานของข้อมูลระดับการเงินและความพร้อมใช้งานสูง เพื่อรับประกันความถูกต้องของทุกคำสั่งซื้อ
  • ? การปรับต้นทุนให้เหมาะสมที่สุด​: สถาปัตยกรรมแบบหลายชั้นจัดการภาระงานส่วนใหญ่ในชั้นแคชที่มีต้นทุนต่ำกว่า คุณสมบัติความยืดหยุ่นของ TDSQL-C ทำให้คุณไม่ต้องเตรียมทรัพยากรฐานข้อมูลจำนวนมากสำหรับปริมาณการใช้งานสูงสุด ลดต้นทุนได้อย่างเห็นได้ชัด
  • ? การดำเนินการและบำรุงรักษาง่ายและมีประสิทธิภาพ​: บริการที่จัดการเต็มรูปแบบช่วยลดความกังวลในการบำรุงรักษาโครงสร้างพื้นฐานพื้นฐาน รองรับการขยายและย่อขนาดอย่างยืดหยุ่น ทำให้ทีมพัฒนาสามารถมุ่งเน้นไปที่นวัตกรรมทางธุรกิจได้มากขึ้น

สถานการณ์การใช้งานและลูกค้าที่เหมาะสม

  • สถานการณ์การใช้งานทั่วไป:\n​:
    • การแย่งชิงสินค้าในเทศกาลช้อปปิ้งอีคอมเมิร์ซ​: การซื้อสินค้าจำนวนจำกัดและการแจกซองอั่งเปาในช่วงเทศกาลช้อปปิ้ง เช่น 11.11, 618
    • ระบบตั๋วแย่งตั๋ว​: การขายออนไลน์ของตั๋วที่ได้รับความนิยม เช่น คอนเสิร์ต การแข่งขันกีฬา
    • เปิดตัวสินค้าฮิต​: การเปิดตัวออนไลน์ของสินค้าใหม่ เช่น โทรศัพท์มือถือรุ่นใหม่ รองเท้ายอดนิยม
  • ลักษณะลูกค้าที่เหมาะสม:\n​:
    • ธุรกิจมีช่วงเวลาที่มีปริมาณงานสูงและต่ำอย่างชัดเจน โดยปริมาณคำขอพร้อมกันในช่วงสูงสุดสูงถึงระดับหมื่นขึ้นไป
    • มีความต้องการความสอดคล้องของข้อมูลสูงมาก ไม่สามารถยอมรับการขายเกินสต็อกหรือคำสั่งซื้อผิดพลาดได้
    • มุ่งเน้นความเสถียรของระบบและความพร้อมใช้งานสูง ต้องการสร้างสถาปัตยกรรมที่ยืดหยุ่นเพื่ออนาคต

ลิงก์ที่เกี่ยวข้อง