استفاده از افزایه‌ها

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

Edge Microgateway v. 3.3.x

مخاطبان

این موضوع برای اپراتورهای Edge Microgateway درنظر گرفته شده است که می‌خواهند از افزونه‌های موجودی که همراه با microgateway نصب شده‌اند استفاده کنند. همچنین افزایه‌های مهار جهش و سهمیه را به‌طور مفصل (هر دو با نصب ارائه می‌شوند) مورد بحث قرار می‌دهد. اگر توسعه‌دهنده‌ای هستید که می‌خواهید افزایه‌های جدید توسعه دهید، توسعه افزایه‌های سفارشی را ببینید.

افزایه Edge Microgateway چیست؟

افزایه یک واحد Node.js است که عملکرد را به Edge Microgateway اضافه می‌کند. واحدهای افزایه از الگوی ثابتی پیروی می‌کنند و در مکانی ذخیره می‌شوند که Edge Microgateway آن را می‌شناسد، و این امر باعث می‌شود ریزدروازه بتواند آن‌ها را به‌طور خودکار شناسایی و بار کند. «دروازه کوچک Edge» شامل چندین افزایه موجود است و می‌توانید افزایه‌های سفارشی نیز ایجاد کنید، همان‌طور که در توسعه افزایه‌های سفارشی توضیح داده شده است.

افزایه‌های موجود همراه با Edge Microgateway

تعدادی افزایه همراه با Edge Microgateway در زمان نصب ارائه می‌شود. جدول زیر برخی‌از پرکاربردترین افزونه‌ها را شرح می‌دهد.

افزایه به‌طور پیش‌فرض فعال است شرح
analytics بله داده‌های تجزیه‌وتحلیل را از Edge Microgateway به Apigee Edge ارسال می‌کند.
oauth بله اعتبارسنجی کلید میانای برنامه‌سازی کاربردی و کد OAuth را به Edge Microgateway اضافه می‌کند. راه‌اندازی و پیکربندی Edge Microgateway را ببینید.
سهمیه نه سهمیه را برای درخواست‌های Edge Microgateway اعمال می‌کند. از Apigee Edge برای ذخیره و مدیریت سهمیه‌ها استفاده می‌کند. به استفاده از افزایه سهمیه مراجعه کنید.
spikearrest نه از کاربر دربرابر افزایش ناگهانی ترافیک و حمله‌های منع سرویس محافظت می‌کند. استفاده از افزایه «مهار جهش» را ببینید.
header-uppercase نه پراکسی نمونه‌ای که نظر داده شده است و به‌عنوان راهنمایی برای کمک به توسعه‌دهندگان در نوشتن افزایه‌های سفارشی درنظر گرفته شده است. افزایه نمونه Edge Microgateway را ببینید.
accumulate-request نه داده‌های درخواست را در یک شیء واحد جمع‌آوری می‌کند و سپس داده‌ها را به گرداننده بعدی در زنجیره افزایه ارسال می‌کند. برای نوشتن افزایه‌های تبدیل که باید روی یک شیء محتوای درخواست انباشته‌شده واحد عمل کنند مفید است.
accumulate-response نه داده‌های پاسخ را در یک شیء واحد جمع‌آوری می‌کند و سپس داده‌ها را به گرداننده بعدی در زنجیره افزایه منتقل می‌کند. برای نوشتن افزایه‌های تبدیل که باید روی یک شیء محتوای پاسخ انباشته‌شده واحد عمل کنند مفید است.
transform-uppercase نه داده‌های درخواست یا پاسخ را تبدیل می‌کند. این افزایه نشان‌دهنده پیاده‌سازی روال مطلوب افزایه تبدیل است. افزایه نمونه تبدیل ساده‌ای انجام می‌دهد (داده‌های درخواست یا پاسخ را به حروف بزرگ تبدیل می‌کند)؛ بااین‌حال، به‌راحتی می‌تواند برای انجام انواع دیگر تبدیل‌ها، مثل تبدیل XML به JSON، تطبیق داده شود.
json2xml نه داده‌های درخواست یا پاسخ را براساس سرایندهای پذیرش یا نوع محتوا تبدیل می‌کند. برای جزئیات، به اسناد افزایه در GitHub مراجعه کنید.
سهمیه-حافظه نه سهمیه را برای درخواست‌های Edge Microgateway اعمال می‌کند. سهمیه‌ها را در حافظه محلی ذخیره و مدیریت می‌کند.
healthcheck نه اطلاعاتی درباره فرایند Edge Microgateway برمی‌گرداند -- استفاده از حافظه، استفاده از واحد پردازش مرکزی، و غیره. برای استفاده از افزایه، نشانی وب /healthcheck را در نمونه Edge Microgateway خودتان فراخوانی کنید. این افزایه به‌عنوان نمونه‌ای درنظر گرفته شده است که می‌توانید از آن برای پیاده‌سازی افزایه بررسی سلامت خودتان استفاده کنید.

محل یافتن افزایه‌های موجود

افزایه‌های موجود که با Edge Microgateway دسته‌بندی شده‌اند در اینجا قرار دارند، جایی که [prefix] پیشوند npm دایرکتوری است. اگر نمی‌توانید این دایرکتوری را پیدا کنید، محل نصب Edge Microgateway را ببینید.

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins

افزودن و پیکربندی افزایه‌ها

برای افزودن و پیکربندی افزایه‌ها، این الگو را دنبال کنید:

  1. ‫Edge Microgateway را متوقف کنید.
  2. فایل پیکربندی Edge Microgateway را باز کنید. برای جزئیات، ایجاد تغییرات پیکربندی برای گزینه‌ها را ببینید.
  3. افزایه را به عنصر plugins:sequence در فایل پیکربندی، به‌صورت زیر، اضافه کنید. افزایه‌ها به ترتیبی که در این فهرست ظاهر می‌شوند اجرا می‌شوند.
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
     level: info
     dir: /var/tmp
     stats_log_interval: 60
  plugins:
     dir: ../plugins
     sequence:   
     - oauth
     - plugin-name
  1. افزایه را پیکربندی کنید. برخی‌از افزونه‌ها پارامترهای اختیاری دارند که می‌توانید آن‌ها را در فایل پیکرببندی پیکربندی کنید. برای مثال، می‌توانید بیت زیر را برای پیکربندی افزایه مهار جهش اضافه کنید. برای اطلاعات بیشتر، استفاده از افزایه مهار جهش را ببینید.
    edgemicro:
      home: ../gateway
      port: 8000
      max_connections: -1
      max_connections_hard: -1
      logging:
        level: info
        dir: /var/tmp
        stats_log_interval: 60
      plugins:
        dir: ../plugins
        sequence:
          - oauth
          - spikearrest
    spikearrest:
       timeUnit: minute
       allow: 10
  1. فایل را ذخیره کنید.
  2. بسته به اینکه کدام فایل پیکربندی را ویرایش کرده‌اید، Edge Microgateway را بازراه‌اندازی یا مجدد بار کنید.

پیکربندی ویژه افزایه

با ایجاد پیکربندی ویژه افزایه در این دایرکتوری می‌توانید پارامترهای افزایه مشخص‌شده در فایل پیکربندی را ملغی کنید:

[prefix]/lib/node_modules/edgemicro/node_modules/microgateway-plugins/config

که در آن [prefix] پیشوند دایرکتوری npm است. اگر نمی‌توانید این دایرکتوری را پیدا کنید، محل نصب Edge Microgateway را ببینید.

plugins/<plugin_name>/config/default.yaml. برای مثال، می‌توانید این بلوک را در plugins/spikearrest/config/default.yaml قرار دهید، و این بلوک تنظیمات پیکربندی دیگر را ملغی می‌کند.

spikearrest:
   timeUnit: hour   
   allow: 10000   
   buffersize: 0

استفاده از افزایه «مهار جهش»

افزایه «مهار جهش» دربرابر جهش‌های ترافیک محافظت می‌کند. تعداد درخواست‌های پردازش‌شده توسط نمونه Edge Microgateway را محدود می‌کند.

درحال افزودن افزایه مهار جهش

به افزودن و پیکربندی افزایه‌ها مراجعه کنید.

پیکربندی نمونه برای مهار جهش

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - spikearrest
spikearrest:
   timeUnit: minute
   allow: 10
   bufferSize: 5

گزینه‌های پیکربندی برای مهار جهش

  • timeUnit: پنجره اجرای «مهار جهش» هر چند وقت یک‌بار بازنشانی می‌شود. مقادیر معتبر ثانیه یا دقیقه است.
  • اجازه دادن: حداکثر تعداد درخواست‌هایی که درطول timeUnit مجاز است. همچنین اگر چندین فرایند Edge Micro را اجرا می‌کنید را ببینید.
  • bufferSize: (اختیاری، پیش‌فرض = ۰) اگر bufferSize > 0، «مهار جهش» این تعداد درخواست را در میان‌گیری ذخیره می‌کند. به‌محض اینکه «پنجره» اجرای بعدی رخ دهد، درخواست‌های بافرشده ابتدا پردازش خواهند شد. همچنین افزودن میان‌گیری را ببینید.

مهار جهش چگونه کار می‌کند؟

«مهار جهش» را به‌عنوان روشی برای محافظت کلی دربرابر جهش‌های ترافیک درنظر بگیرید، نه به‌عنوان روشی برای محدود کردن ترافیک به تعداد مشخصی از درخواست‌ها. میاناهای برنامه‌سازی کاربردی و زیرینه شما می‌توانند مقدار مشخصی از ترافیک را مدیریت کنند، و خط‌مشی «مهار جهش» به شما کمک می‌کند ترافیک را به مقادیر کلی موردنظرتان هموار کنید.

عملکرد جلوگیری از جهش زمان اجرا با آنچه ممکن است از مقادیر دقیق در هر دقیقه یا هر ثانیه که وارد می‌کنید انتظار داشته باشید متفاوت است.

برای مثال، فرض کنید نرخی معادل ۳۰ درخواست در دقیقه را به‌صورت زیر مشخص می‌کنید:

spikearrest:
   timeUnit: minute
   allow: 30

در آزمایش، ممکن است فکر کنید می‌توانید ۳۰ درخواست را در ۱ ثانیه ارسال کنید، به‌شرطی که در یک دقیقه ارسال شوند. اما خط‌مشی این تنظیم را به این شکل اجرا نمی‌کند. اگر به آن فکر کنید، ۳۰ درخواست در یک دوره ۱ ثانیه‌ای می‌تواند در برخی محیط‌ها به‌عنوان یک جهش کوچک درنظر گرفته شود.

پس درواقع چه اتفاقی می‌افتد؟ برای جلوگیری از رفتار جهشی، «مهار جهش» ترافیک مجاز را با تقسیم تنظیمات شما به بازه‌های زمانی کوچک‌تر هموار می‌کند، به این صورت:

نرخ‌های دقیقه‌ای

نرخ‌های دقیقه به فواصل مجاز درخواست‌های ثانیه تبدیل می‌شوند. برای مثال، ۳۰ درخواست در دقیقه به‌صورت زیر هموار می‌شود:

‫۶۰ ثانیه (۱ دقیقه) / ۳۰ = فواصل ۲ ثانیه‌ای، یا تقریباً ۱ درخواست مجاز در هر ۲ ثانیه. درخواست دوم در کمتر از ۲ ثانیه انجام نخواهد شد. همچنین، درخواست سی‌ویکم در یک دقیقه ناموفق خواهد بود.

نرخ‌های ثانیه‌ای

نرخ‌های ثانیه‌ای به درخواست‌های مجاز در فواصل میلی‌ثانیه‌ای تبدیل می‌شوند. برای مثال، ۱۰ درخواست/ثانیه به‌صورت زیر هموار می‌شود:

‫۱۰۰۰ میلی‌ثانیه (۱ ثانیه) / ۱۰ = فاصله‌های ۱۰۰ میلی‌ثانیه‌ای، یا حدود ۱ درخواست مجاز در هر ۱۰۰ میلی‌ثانیه . درخواست دوم در فاصله ۱۰۰ میلی‌ثانیه انجام نخواهد شد. همچنین، یازدهمین درخواست در یک ثانیه انجام نخواهد شد.

وقتی از حد مجاز فراتر می‌رود

اگر تعداد درخواست‌ها در بازه زمانی مشخص‌شده از حد مجاز فراتر برود، «مهار جهش» این پیام خطا را با وضعیت HTTP 503 برمی‌گرداند:

{"error": "spike arrest policy violated"}

درحال افزودن میان‌گیری

گزینه‌ای برای افزودن حاشیه به خط‌مشی دارید. فرض کنیم که حاشیه را روی ۱۰ تنظیم کنید. خواهید دید که وقتی از حد مجاز «مهار جهش» فراتر می‌روید، API بلافاصله خطا برنمی‌گرداند. درعوض، درخواست‌ها بافر می‌شوند (تا تعداد مشخص‌شده)، و درخواست‌های بافرشده به‌محض دردسترس قرار گرفتن پنجره اجرای مناسب بعدی پردازش می‌شوند. پیش‌فرض bufferSize صفر است.

اگر چندین فرایند Edge Micro را اجرا می‌کنید

تعداد درخواست‌های مجاز به تعداد فرایندهای کارگر Edge Micro که درحال اجرا هستند بستگی دارد. «مهار جهش» تعداد مجاز درخواست‌ها را برای هر فرایند کارگر محاسبه می‌کند. به‌طور پیش‌فرض، تعداد فرایندهای Edge Micro برابر با تعداد واحد پردازش مرکزی در ماشینی است که Edge Micro در آن نصب شده است. بااین‌حال، می‌توانید تعداد فرایندهای کارگر را هنگام شروع Edge Micro بااستفاده از گزینه --processes در فرمان start پیکربندی کنید. برای مثال، اگر می‌خواهید «مهار جهش» با ۱۰۰ درخواست در یک دوره زمانی معین راه‌اندازی شود، و اگر Edge Microgateway را با گزینه --processes 4 شروع کنید، سپس allow: 25 را در پیکربندی مهار جهش تنظیم کنید. به‌طور خلاصه، قانون سرانگشتی این است که پارامتر پیکربندی allow را روی مقدار «تعداد موردنظر برای جلوگیری از جهش / تعداد فرایندها» تنظیم کنید.

استفاده از افزایه سهمیه

سهمیه تعداد پیام‌های درخواستی را که یک برنامه مجاز است درطول یک ساعت، یک روز، یک هفته، یا یک ماه به یک API ارسال کند مشخص می‌کند. وقتی برنامه‌ای به حد سهمیه خود می‌رسد، فراخوانی‌های بعدی API رد می‌شود. همچنین تفاوت بین جلوگیری از جهش و سهمیه چیست؟ را ببینید.

درحال افزودن افزایه سهمیه

به افزودن و پیکربندی افزایه‌ها مراجعه کنید.

پیکربندی محصول در Apigee Edge

سهمیه‌ها را در «واسط کاربر Apigee Edge» پیکربندی می‌کنید، جایی که محصولات میانای برنامه‌سازی کاربردی را پیکربندی می‌کنید. باید بدانید کدام محصول حاوی پراکسی آگاه از ریزدروازه‌ای است که می‌خواهید با سهمیه محدود کنید. این محصول باید به برنامه توسعه‌دهنده اضافه شود. وقتی بااستفاده از کلیدهای موجود در برنامه توسعه‌دهنده، تماس‌های API اصالت‌سنجی‌شده برقرار می‌کنید، سهمیه به آن تماس‌های API اعمال خواهد شد.

  1. به سیستم حساب سازمان Apigee Edge خود وارد شوید.
  2. در «میانای کاربری Edge»، محصول منسوب به پراکسی آگاه از دروازه کوچک را که می‌خواهید سهمیه را روی آن اعمال کنید باز کنید.
    1. در رابط کاربری، محصولات را از منو «انتشار» انتخاب کنید.
    2. محصول حاوی API را که می‌خواهید سهمیه را روی آن اعمال کنید باز کنید.
    3. روی ویرایش کلیک کنید.
    4. در فیلد «سهمیه»، بازه سهمیه را مشخص کنید. برای مثال، ۱۰۰ درخواست در هر یک دقیقه. یا ۵۰۰۰۰ درخواست در هر ۲ ساعت.

  1. روی ذخیره کلیک کنید.
  2. مطمئن شوید که محصول به برنامه توسعه‌دهنده اضافه شده باشد. برای انجام تماس‌های API اصیل‌سازی‌شده، به کلیدهای این برنامه نیاز دارید.

پیکربندی نمونه برای سهمیه

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota

گزینه‌های پیکربندی برای سهمیه

برای پیکربندی افزایه سهمیه، عنصر quotas را به فایل پیکربندی خود اضافه کنید، همان‌طور که در مثال زیر نشان داده شده است:

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
  plugins:
    dir: ../plugins
    sequence:
      - oauth
      - quota
quotas:
    bufferSize:
      hour: 20000
      minute: 500
      month: 1
      default: 10000
    useDebugMpId: true
    failOpen: true
    isHTTPStatusTooManyRequestEnabled: true
...
گزینه شرح
bufferSize

(عدد صحیح) پیکربندی bufferSize به شما امکان می‌دهد تنظیم کنید Edge Microgateway چندوقت یک‌بار تعداد سهمیه خود را با Apigee Edge همگام‌سازی کند. برای درک bufferSize، پیکربندی نمونه زیر را درنظر بگیرید:

quotas:
 bufferSize:
  minute: 500
  default: 10000
 useDebugMpId: true
 failOpen: true

به‌طور پیش‌فرض، اگر فاصله سهمیه روی «دقیقه» تنظیم شده باشد، ریزدروازه هر ۵ ثانیه شمارنده سهمیه خود را با Apigee Edge همگام‌سازی می‌کند. پیکربندی بالا می‌گوید اگر فاصله سهمیه در محصول API روی «دقیقه» تنظیم شده باشد، Edge Microgateway با Edge همگام‌سازی می‌کند تا تعداد سهمیه فعلی را پس‌از هر ۵۰۰ درخواست یا پس‌از ۵ ثانیه، هرکدام زودتر رخ دهد، دریافت کند. برای اطلاعات بیشتر، درک نحوه محاسبه سهمیه‌ها را ببینید.

واحدهای زمان مجاز شامل: minute، hour، day، week، month، و default.

isHTTPStatusTooManyRequestEnabled

افزونه سهمیه را پیکربندی می‌کند تا درصورت نقض سهمیه، وضعیت پاسخ HTTP 429 را به‌جای وضعیت ۴۰۳ برگرداند.

پیش‌فرض: false. به‌طور پیش‌فرض، یا اگر پرچم روی false تنظیم شده باشد، وقتی از سهمیه فراتر می‌روید، سهمیه وضعیت HTTP 403 را برمی‌گرداند.

اگر پرچم روی true تنظیم شده باشد، وقتی از سهمیه فراتر می‌روید، سهمیه وضعیت HTTP 429 را برمی‌گرداند.

برای تغییر وضعیت برگشتی HTTP پیش‌فرض به 429، از پیکربندی زیر استفاده کنید:

edgemicro:
...
quotas:
  isHTTPStatusTooManyRequestEnabled: true
...
failOpen وقتی این ویژگی فعال باشد، اگر خطای پردازش سهمیه رخ دهد یا اگر درخواست «اعمال سهمیه» به Edge برای به‌روزرسانی شمارنده‌های سهمیه از دور با خطا مواجه شود، سهمیه فقط براساس شمارش‌های محلی پردازش خواهد شد تا زمانی که همگام‌سازی سهمیه از دور موفق بعدی انجام شود. در هر دو مورد، یک پرچم quota-failed-open در شیء درخواست تنظیم می‌شود.

برای فعال کردن ویژگی سهمیه «باز کردن درصورت خرابی»، پیکربندی زیر را تنظیم کنید:

edgemicro:
...
quotas:
  failOpen: true
...
useDebugMpId این پرچم را روی true تنظیم کنید تا ثبت شناسه MP (پردازشگر پیام) در پاسخ‌های سهمیه فعال شود.

برای استفاده از این ویژگی، باید پیکربندی زیر را تنظیم کنید:

edgemicro:
...
quotas:
  useDebugMpId: true
...

وقتی useDebugMpId تنظیم شود، پاسخ‌های سهمیه از Edge حاوی شناسه MP خواهد بود و توسط Edge Microgateway ثبت خواهد شد. برای مثال:

{
    "allowed": 20,
    "used": 3,
    "exceeded": 0,
    "available": 17,
    "expiryTime": 1570748640000,
    "timestamp": 1570748580323,
    "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
}
useRedis اگر روی true تنظیم شود، افزایه از Redis برای فروشگاه پشتیبان سهمیه استفاده می‌کند. برای جزئیات، استفاده از فروشگاه پشتیبان Redis برای سهمیه را ببینید.

آشنایی با نحوه شمارش سهمیه‌ها

به‌طور پیش‌فرض، اگر فاصله سهمیه روی «دقیقه» تنظیم شده باشد، ریزدروازه هر ۵ ثانیه شمارنده سهمیه خود را با Apigee Edge همگام‌سازی می‌کند. اگر فاصله زمانی روی سطحی بالاتر از «دقیقه» تنظیم شده باشد، مثلاً «هفته» یا «ماه»، دوره بازآوری پیش‌فرض ۱ دقیقه است.

توجه داشته باشید که بازه‌های سهمیه را در محصولات API که در Apigee Edge تعریف شده‌اند مشخص می‌کنید. فاصله‌های سهمیه مشخص می‌کنند که چند درخواست برای یک دقیقه، یک ساعت، یک روز، یک هفته یا یک ماه مجاز است. برای مثال، «محصول الف» ممکن است بازه سهمیه ۱۰۰ درخواست در دقیقه داشته باشد و «محصول ب» ممکن است بازه سهمیه ۱۰٬۰۰۰ درخواست در ساعت داشته باشد.

پلاگین Edge Microgateway quota پیکربندی YAML فاصله سهمیه را تنظیم نمی‌کند؛ بلکه روشی برای تنظیم دفعاتی که نمونه محلی Edge Microgateway تعداد سهمیه خود را با Apigee Edge همگام‌سازی می‌کند ارائه می‌دهد.

برای مثال، فرض کنید سه محصول API در Apigee Edge با فاصله‌های سهمیه زیر تعریف شده است:

  • محصول A سهمیه ۱۰۰ درخواست در دقیقه دارد
  • محصول B سهمیه ۵۰۰۰ درخواست در ساعت دارد
  • محصول C سهمیه ۱۰۰۰۰۰۰ درخواست در ماه دارد

با درنظر گرفتن آن تنظیمات سهمیه، افزایه quota Edge Microgateway چگونه باید پیکربندی شود؟ روال مطلوب این است که Edge Microgateway را با فاصله‌های همگام‌سازی که از فاصله‌های سهمیه تعریف‌شده در محصولات API کمتر است پیکربندی کنید. برای مثال:

quotas:
    bufferSize:
      hour: 2000
      minute: 50
      month: 1
      default: 10000

این پیکربندی فاصله‌های همگام‌سازی زیر را برای محصولات API که قبلاً توضیح داده شده است تعریف می‌کند:

  • محصول A روی بازه «دقیقه» تنظیم شده است. ‫Edge Microgateway پس‌از هر پنجاهمین درخواست یا هر ۵ ثانیه، هرکدام زودتر باشد، با Edge همگام‌سازی خواهد شد.
  • محصول B روی فاصله «ساعت» تنظیم شده است. ‫Edge Microgateway پس‌از هر ۲۰۰۰ درخواست یا ۱ دقیقه، هرکدام زودتر باشد، با Edge همگام‌سازی خواهد شد.
  • محصول C روی بازه «ماه» تنظیم شده است. ‫Edge Microgateway پس‌از هر درخواست یا هر ۱ دقیقه (هرکدام زودتر باشد) با Edge همگام‌سازی خواهد شد.

هر بار که نمونه دروازه کوچک با Edge همگام‌سازی می‌شود، تعداد سهمیه دروازه کوچک روی تعداد سهمیه بازیابی‌شده تنظیم می‌شود.

تنظیمات bufferSize به شما امکان می‌دهد نحوه همگام‌سازی شمارنده سهمیه با Edge را تنظیم کنید. در شرایط پرترافیک، تنظیمات bufferSize به شمارشگر میان‌گیر اجازه می‌دهد قبل‌از اینکه همگام‌سازی زمان‌بنیاد پیش‌فرض راه‌اندازی شود، همگام‌سازی کند.

آشنایی با محدوده سهمیه

تعداد سهمیه به محیطی در سازمان محدود می‌شود. برای دستیابی به این محدوده، ‫Edge Microgateway شناسه سهمیه‌ای ایجاد می‌کند که ترکیبی از «سازمان + محیط + نام برنامه + نام محصول» است.

استفاده از فروشگاه پشتیبان Redis برای سهمیه

برای استفاده از فروشگاه پشتیبان Redis برای سهمیه، از همان پیکربندی استفاده‌شده برای ویژگی «همگام‌ساز» استفاده کنید. در زیر پیکربندی پایه موردنیاز برای استفاده از Redis برای ذخیره‌سازی سهمیه آمده است:

edgemicro:
  redisHost: localhost
  redisPort: 6379
  redisDb: 2
  redisPassword: codemaster

quotas:
  useRedis: true
برای جزئیات مربوط به پارامترهای edgemicro.redis*، به استفاده از همگام‌ساز مراجعه کنید.

درحال آزمایش افزایه سهمیه

وقتی از سهمیه فراتر رفتید، وضعیت HTTP 403 همراه با پیام زیر به کارخواه برگردانده می‌شود: پیام زیر:

{"error": "exceeded quota"}

تفاوت بین مهار جهش و سهمیه چیست؟

انتخاب ابزار مناسب برای کار موردنظر مهم است. خط‌مشی‌های سهمیه تعداد پیام‌های درخواستی را که یک برنامه کارخواه مجاز است در طول یک ساعت، یک روز، یک هفته، یا یک ماه به یک API ارسال کند پیکربندی می‌کنند. خط‌مشی سهمیه با حفظ یک شمارنده توزیع‌شده که درخواست‌های ورودی را شمارش می‌کند، محدودیت‌های مصرف را در برنامه‌های مشتری اعمال می‌کند.

از خط‌مشی سهمیه برای اجرای قراردادهای کسب‌وکار یا «قراردادهای سطح خدمات» با توسعه‌دهندگان و شرکا استفاده کنید، نه برای مدیریت ترافیک عملیاتی. برای مثال، از سهمیه ممکن است برای محدود کردن ترافیک سرویس رایگان استفاده شود، درحالی‌که به مشتریان پولی دسترسی کامل داده می‌شود.

برای محافظت دربرابر افزایش ناگهانی ترافیک API، از «مهار جهش» استفاده کنید. معمولاً از «مهار جهش» برای جلوگیری از حمله‌های احتمالی «منع سرویس توزیع‌شده» یا حمله‌های مخرب دیگر استفاده می‌شود.