محاسبات لبه و کنترل تاخیر
1) چرا لبه و کنترل تاخیر چیست
لبه اجرای منطق نزدیک به کاربر (PoP، CDN، PoP اپراتور محلی، 5G MEC) است. هدف این است که RTT و دم (p95/p99) را کاهش دهیم، هسته را بارگیری کنیم و از انطباق جغرافیایی اطمینان حاصل کنیم.
کنترل تاخیر - مجموعه ای از تکنیک های معماری و پروتکل که تاخیر در SLO های داده شده را در طول قله، از دست دادن بسته و تخریب وابستگی نگه می دارد.
ایده های کلیدی: محل، ناهمگونی، تخریب با اولویت ارزش.
2) محیط نقشه
استاتیک/دارایی CDN: ذخیره سازی، تبدیل تصویر/HTML، Brotli، WebP/AVIF، HTTP/3.
محاسبه لبه: توابع/کارگران (کارگران Cloudflare، Fastly محاسبه @ Edge، لبه Vercel، پرواز. IO).
داده های لبه: KV/SQLite-on-edge/Objects Durable/Global Tables (با رزرو سازگاری).
امنیت لبه: WAF/Rate limit/Bot mgmt/Geo-rules/HMAC چک می کند.
شبکه لبه: Anycast، مسیریابی هوشمند، بهینه سازی TCP/QUIC.
3) الگوهای قرار دادن منطق
محافظ و گرم کردن: لایه اصلی سپر، گرم کردن/پین کردن کلید های محبوب.
محاسبه بر روی خواندن: شخصی سازی بنر، شاخه A/B، تغییر مسیر جغرافیایی.
Pre-auth at edge: اعتبار سنجی JWT/HMAC، انداختن زباله به هسته.
Write-through queue - رویدادهای سفارشی را به صف لبه با تحویل ناهمزمان به هسته (idempotency!)
ویژگی flags @ edge: سوئیچ های تخریب سریع (حالت سبک صفحه/دایرکتوری).
4) پروتکل ها و حمل و نقل
HTTP/3 (QUIC): دست دادن کوچکتر، مقاوم در برابر از دست دادن بسته. فعال کردن 0-RTT فقط برای GET/HEAD idempotent.
تنظیم TCP (برای HTTP/1. 1/2): BBR/CUBIC، 'tcp _ fastopen'، 'keepalive'، اتصال اتصال.
TLS: OCSP stapling، ECDSA- серты، از سرگیری جلسه ؛ HSTS در محدوده
DNS: TTL کوتاه (30-120 ثانیه) برای دینامیک، تقسیم افق، حل کننده های anycast.
5) کنترل دم: p95/p99
درخواست های hedged: درخواست برای backend دوم را پس از «مهلت شروع» (به عنوان مثال، تاخیر p90) تکرار کنید و بازنده را لغو کنید.
انتشار مهلت: عبور 'x-deadline-ms '/' grpc-timeout' برای حفظ زنجیره از بیش از SLA.
همروندی تطبیقی: همروندی راتا/مستاجر را با تأخیر مشاهده شده (AIMD) محدود کنید.
Bulkhead & priority: مسیرهای بحرانی (ورود/واریز) سهمیه و صف بالای کلاس را دریافت می کنند.
6) زمان، عقب نشینی و idempointence
مهلت کل <هر بار هاپ × N ؛ عقب نشینی فقط برای جراحی idempotent.
عقب نشینی + jitter (تاخیر نیمه شانس)، هجینگ به جای retrays کور.
Idempotency-کلید برای پست (کیف پول/پرداخت/پاداش).
Retry-After and client prompts (429/503) با پنجره های نمایشی.
نماینده (قطعه مسیر)
yaml route:
timeout: 300ms retry_policy:
retry_on: "reset,5xx,connect-failure"
num_retries: 1 per_try_timeout: 150ms retry_host_predicate:
- name: envoy. retry_host_predicates. previous_hosts host_selection_retry_max_attempts: 3 hedge_policy:
initial_requests: 1 additional_request_chance: { default_value: 0. 5} # enable after per-timeout
7) ذخیره و سازگاری
نظم و انضباط کلیدی کش: عادی سازی هدر/نمایش داده شد, متفاوت با زمینه های مورد نیاز.
Stale-while-revalidate: بازگشت فوری «کمی قدیمی» + به روز رسانی پس زمینه.
نرم TTL/Hard TTL: منسوخ نرم برای مسیرهای خواندن، TTL سخت برای تنظیمات بحرانی.
مبادلات امضا شده/URL های امضا شده: حفاظت از منابع داغ، از جمله محدودیت های منطقه ای.
NGINX (مثال SWR)
nginx proxy_cache_valid 200 10m;
proxy_cache_use_stale updating error timeout http_500 http_502 http_504;
add_header Age $upstream_cache_status;
8) لبه کارگران: نمونه
کارگران Cloudflare (JWT + Geo)
js export default {
async fetch(req, env, ctx) {
const url = new URL(req. url);
const { country } = req. cf {};
//Simple geo-policy if (country & &! ["DE, ""PL, ""SE,"" UA"] .includes (country)) {
return new Response("Region not served", { status: 451 });
}
//Easy JWT validation const token = req. headers. get("Authorization")?.replace("Bearer ","");
if (!token! isValid(token, env. JWTPUB)) return new Response("",{status:401});
//Prefetch critical data const resp = await fetch ("https ://origin. internal/api/v1/catalog", { cf:{ cacheTtl: 60, cacheEverything: true }});
return new Response(resp. body, resp);
}
}
Fastly Compute @ Edge (قناری ها بر اساس وزن)
در اتاق های نشیمن/صفحات - 5٪ برای نسخه جدید، بازگشت سریع از طریق پیکربندی لبه.
9) اولویت بندی و تخریب
نکات اولویت: اولویت های HTTP/2/نکات اولیه HTTP (103) → فشار اولیه منابع مهم.
مسیر کاهش: قالب UI ساده، غیرفعال کردن ویدجت های سنگین، کاهش کیفیت تصویر.
شکل گیری ترافیک: محدودیت انیمیشن ها، ویدجت های ارائه دهندگان شخص ثالث در مورد شبکه بد (سیگنال های RUM).
10) قابلیت مشاهده در محیط
RUM + مصنوعی: Web-Vitals (LCP/CLS/INP)، TTFB، RTT потери QUIC.
نمونه ها: خوشه های P99 را با trace_id خاص و PoP مرتبط کنید.
SLO در هر منطقه/ASN/ارائه دهنده: «p95 TTFB ≤ 200 میلی ثانیه»، «p99 API ≤ 400 میلی ثانیه».
Tail-sampling: save errors/p99, segments 'edge _ pop', 'region', 'tenant'.
سیاهههای مربوط لبه: بازدید WAF، ربات نمره، کش وضعیت، جغرافیایی راه حل.
11) مدیریت اسکریپت شخص ثالث
CSP و سیاست یکپارچگی Subresource.
دانلود توسط تعویق/async، دامنه های جدا شده، مسیرهای بحرانی - بدون مسدود کردن JS شخص ثالث.
شخصی سازی و ردیابی - انجام در لبه به صورت ناهمگام، بدون تأثیر TTFB.
12) Antibot/antifraud در لبه
اثر انگشت دستگاه و محدودیت سرعت به هسته.
اتصال نشانه (نشانه های یک بار در هر فرم/عملیات)، امضای HMAC درخواست.
چالش گام (Turnstile/hCaptcha) تنها در معرض خطر است ؛ کش «اعتماد» توسط IP/ASN/جلسه.
13) ویژگی های iGaming/امور مالی
Geo-compliance: مسدود کردن/هدایت توسط حوزه قضایی به لبه (صفحات قوانین، بازی مسئول).
اولویت بندی PSP/KYC: مسیریابی لبه به یک ارائه دهنده «سالم» (مسیریابی هوشمند)، TTL/وزن فردی به DNS برای دامنه های PSP.
ضد سوء استفاده: محدودیت در سپرده/ثبت نام/پاداش، با توجه به سیگنال های سرعت در لبه ؛ تمام عملیات نوشتن idempotent هستند.
اقامت داده ها: اطلاعات شخصی در لبه ذخیره نمی شود ؛ هدر های PII ویرایش/حذف می شوند، TLS پینینگ به PSP فعال می شود.
CLO برای مسیرهای «پول»: p95/p99 سختگیرانه تر، سهمیه های اختصاص یافته، هشدارهای فردی.
14) دستور العمل های معماری
14. 1 «جبهه سریع»
قالب HTML و CSS بحرانی در لبه، داده ها از طریق «stale-while-revalidate»، ویدجت های سنگین تنبل هستند.
14. ۲ «راه پول»
Pre-auth + HMAC در لبه، بررسی سریع قانون/محدودیت، صف بندی، پاسخ 202/OK، webhook/نظرسنجی بعدی ؛ مهلت و مصون سازی به PSP.
14. 3 «کاتالوگ/بازی»
دایرکتوری ها/پیکربندی ها - کش جهانی KV/لبه ؛ برای قیمت منطقه ای/سن - محاسبه بر روی لبه با قوانین محلی.
15) عملکرد و هزینه
کش ≥ 95٪ برای استاتیک و ≥ 70٪ برای نیمه دینامیک (قطعات HTML) - هدف قرار گرفت.
کاهش «خروج بین منطقه ای» از طریق PoP های محلی و پاسخ های قدیمی.
قوانین ردیابی محدود کردن حجم × 10 تا 100 × در حالی که حفظ موارد ارزشمند است.
پروتکل QUIC RTT را ذخیره می کند، اما برگشت در H2 را حفظ می کند.
16) تولید لیست آمادگی
- HTTP/3/QUIC فعال شود ؛ 0-RTT فقط برای idemotent.
- لبه کارگران: اعتبار سنجی JWT/HMAC، قوانین جغرافیایی، تخریب پرچم های ویژگی.
- استراتژی کش: کلید، SWR، نرم/سخت TTL ؛ منبع سپر + گرم کردن.
- هجینگ، انتشار مهلت، همزمانی تطبیقی، bulkheads.
- زمان/Retrays: عقب نشینی + jitter، تنها تکرار بی نظیر.
- رم + مصنوعی ؛ SLO بر اساس منطقه/ASN ؛ tail-sampling p99/errors.
- CSP/SRI و کنترل اسکریپت شخص ثالث ؛ WAF/ربات نمره در لبه.
- برای iGaming: geo-compliance، PSP هوشمند مسیریابی، نوشتن idempotency، بدون PII در حافظه پنهان.
- Runbooks: چگونه برای فعال کردن تخریب/سوئیچ وزن/رول پشت قناری.
- تست: تاخیر تحت از دست دادن 1-3%, هرج و مرج تاخیر, تمرین DNS شکست.
17) TL ؛ دکتر متخصص
ارائه منطق به عنوان نزدیک که ممکن است به کاربر (لبه کارگران + کش), بحث در مورد HTTP/3/QUIC, شدت کنترل timeouts/مهلت, «دم» P99 مصون سازی و برآمدگی/اولویت. مسیرهای بحرانی - سهمیه های جداگانه و SLO ها، همه سوابق - بی نظیر هستند. قابلیت مشاهده - RUM + مصنوعی + ردیابی دم. برای iGaming - انطباق جغرافیایی، PSP/KYC مسیریابی هوشمند، نشت صفر PII در محیط و حالت های تخریب سریع.