ขีดจำกัดการใช้งาน

เนื่องจาก Google Meet REST API เป็นบริการที่ใช้ร่วมกัน เราจึงใช้โควต้าและข้อจำกัดเพื่อให้ผู้ใช้ทุกคนใช้งานแอปได้อย่างเป็นธรรมและเพื่อปกป้องประสิทธิภาพโดยรวมของระบบ Google Workspace

หากใช้เกินโควต้า คุณจะได้รับการตอบกลับจากรหัสสถานะ HTTP 429: Too many requests หากเป็นเช่นนี้ คุณควรใช้อัลกอริทึม Backoff แบบเอ็กซ์โปเนนเชียลแล้วลองอีกครั้งในภายหลัง หากไม่มีการจำกัดจำนวนคำขอที่คุณทำได้ต่อวัน ตราบใดที่ยังไม่เกินโควต้าต่อนาที

ตารางต่อไปนี้แสดงรายละเอียดขีดจำกัดของคำค้นหา

โควต้า
คำขอที่อ่าน
ต่อนาทีต่อโปรเจ็กต์ 6000
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 600
คำขอที่เขียน
ต่อนาทีต่อโปรเจ็กต์ 1,000
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 100
คำขอการเขียนที่ลดลง

(ใช้สำหรับคำขอ spaces.create)

ต่อนาทีต่อโปรเจ็กต์ 100
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 10

แก้ไขข้อผิดพลาดด้านโควต้าตามเวลา

สำหรับข้อผิดพลาดที่อิงตามเวลาทั้งหมด (สูงสุด N คำขอต่อ X นาที) เราขอแนะนำให้โค้ดจับข้อยกเว้นและใช้ Exponential Backoff ที่ถูกตัดออกเพื่อให้มั่นใจว่าอุปกรณ์จะไม่ก่อให้เกิดภาระงานมากเกินไป

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

ตัวอย่างอัลกอริทึม

อัลกอริทึม Backoff แบบเอ็กซ์โปเนนเชียลจะส่งคำขอซ้ำแบบทวีคูณ ซึ่งทำให้เวลารอนานขึ้นระหว่างการดำเนินการอีกครั้งจนถึงเวลา Backoff สูงสุด เช่น

  1. ส่งคำขอไปยัง Google Meet API
  2. หากคำขอไม่สำเร็จ โปรดรอ 1 + random_number_milliseconds แล้วลองส่งคำขออีกครั้ง
  3. หากคำขอล้มเหลว โปรดรอ 2 + random_number_milliseconds แล้วลองส่งคำขออีกครั้ง
  4. หากคำขอไม่สำเร็จ โปรดรอ 4 + random_number_milliseconds แล้วลองส่งคำขออีกครั้ง
  5. เป็นเช่นนี้ไปเรื่อยๆ ได้สูงสุด maximum_backoff ครั้ง
  6. รอต่อไปและพยายามลองใหม่ให้ครบจำนวนสูงสุดที่กำหนด แต่อย่าเพิ่มระยะเวลารอระหว่างการลองใหม่

ที่ไหน:

  • เวลารอคือ min(((2^n)+random_number_milliseconds), maximum_backoff) โดยเพิ่มขึ้น n ครั้งละ 1 ครั้ง (คําขอ)
  • random_number_milliseconds เป็นตัวเลขแบบสุ่มของมิลลิวินาทีที่น้อยกว่าหรือเท่ากับ 1,000 วิธีนี้จะช่วยหลีกเลี่ยงกรณีที่เกิดการซิงค์ไคลเอ็นต์จำนวนมากตามสถานการณ์ แล้วลองส่งคำขอทั้งหมดอีกครั้งพร้อมกันโดยส่งคำขอแบบเป็นชุด ระบบจะคำนวณค่าของ random_number_milliseconds ใหม่หลังจากคำขอลองอีกครั้งแต่ละครั้ง
  • maximum_backoff มักอยู่ที่ 32 หรือ 64 วินาที ค่าที่เหมาะสมจะขึ้นอยู่กับกรณีการใช้งาน

ไคลเอ็นต์จะลองใหม่ต่อไปได้หลังจากผ่านไปถึง maximum_backoff ครั้งแล้ว ลองใหม่หลังจากจุดนี้ไม่จําเป็นต้องเพิ่มเวลา Backoff อีก เช่น หากลูกค้าใช้เวลา maximum_backoff นาน 64 วินาที หลังจากถึงค่านี้แล้ว ไคลเอ็นต์จะลองซ้ำได้ทุกๆ 64 วินาที ในบางสถานการณ์ ไคลเอ็นต์ควรถูกป้องกันไม่ให้ลองอีกครั้งไปเรื่อยๆ

เวลารอระหว่างการลองใหม่และจำนวนการลองใหม่จะขึ้นอยู่กับกรณีการใช้งานและเงื่อนไขของเครือข่าย

การกำหนดราคา

การใช้ Google Meet API ทั้งหมดไม่มีค่าใช้จ่ายเพิ่มเติม การใช้งานเกินขีดจำกัดคำขอโควต้าจะไม่มีการเรียกเก็บเงินเพิ่มเติม และจะไม่มีการเรียกเก็บเงินจากบัญชีของคุณ

ขอเพิ่มโควต้า

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

แต่ละโปรเจ็กต์มีโควต้าแตกต่างกัน เมื่อคุณใช้ Google Cloud มากขึ้นเรื่อยๆ โควต้าของคุณจึงอาจต้องเพิ่มขึ้น หากคุณคาดว่าการใช้งานจะเพิ่มขึ้นอย่างมากในเร็วๆ นี้ คุณสามารถขอปรับโควต้าได้ทุกเมื่อจากหน้าโควต้าในคอนโซล Google Cloud

ดูข้อมูลเพิ่มเติมได้ในแหล่งข้อมูลต่อไปนี้