جریان محتوا در شبکه
(بخش: اکوسیستم و شبکه)
1) جوهر و اهداف
جریان های محتوا مسیرهای تحویل قابل کنترل مصنوعات بازی (کد/دارایی/رسانه)، ابرداده (مانیفست، محلی، قوانین) و تله متری و رویدادهای بین شرکت کنندگان اکوسیستم است. اهداف:- تاخیر کم و UX پایدار در قله.
- قابلیت پیش بینی از طریق QoS/سهمیه ها، SLI/SLO و قابلیت مشاهده.
- سازگاری و نسخه های بدون خرابی.
- امنیت، انطباق و هزینه هر واحد ترافیک.
2) طبقه بندی جریان
1. On-Demand (کشیدن) - مشتری درخواست دارایی/تظاهرات توسط URL هش.
2. Push/Invalidate - به روز رسانی/غیر فعال کردن کش ها و اشتراک ها (webhooks).
3. جریان - کانال های طولانی (WebSocket/gRPC) برای لابی/جکپات/رویدادهای زنده.
4. Batch/Scheduled - بارگذاری برنامه ریزی شده کاتالوگ ها، مناطق، گزارش ها.
5. Side-band Telemetry - رویدادها/معیارها/مسیرها که با UX اصلی تداخل ندارند.
6. کنترل هواپیما - phicheflags, قوانین اقامت, تحریم/لیست DRM.
هر نوع کلاس ها، کانال ها و سیاست های QoS خود را دریافت می کند.
3) نقش ها، گره ها و مسیرها
تولید کننده محتوا (استودیو) → جمع کننده/ثبت → اپراتور → CDN/لبه → مشتری.
گره های خدمات: محلی سازی، DRM/قوانین، خدمات پرداخت/جکپات، ضد تقلب، نظارت.
مخازن: رجیستری آشکار، نسخه های SDK، ذخیره سازی اشیاء رسانه ای، TSDB تله متری.
مسیر مسیر: مشتری درخواست manifest → دارایی ها را با مشخصات دستگاه/محلی انتخاب می کند → CDN/edge از حافظه پنهان برمی گردد ؛ به موازات، جریان لابی/جکپات باز، و تله متری می رود سمت باند.
4) حمل و نقل و فرمت ها
HTTP/2/3 برای دارایی ها و مانیفست ها (TLS، Brotli/Gzip، range).
gRPC/QUIC/WebSocket - جریان دو طرفه رویداد/حالت.
Webhooks - اشتراک شریک به تغییرات (افراد معلول، به روز رسانی محتوا).
مانیفست (JSON/YAML) با آدرس هش (URL غیر قابل تغییر)، لیست دارایی و ماتریس سازگاری (زبان/مرورگر/SDK).
هش محتوا (Merkle/sha256) برای یکپارچگی و قابلیت اتصال.
5) QoS، سهمیه و فشار پشتی
کلاس ها:- P0 - UX بحرانی (آشکار، هسته بازی، کیف پول، قوانین)،
- P1 - دارایی های اصلی/UI و جریان،
- P2 - رسانه های با چگالی بالا، تشخیص، آرشیو.
- سهمیه: RPS/رقابتی، بایت/ثانیه، اشتراک/مشتری.
- فشار پشتی: نشانه/اعتبار، محدودیت اشتراک، «گارد پرس و جو سنگین» (محدوده/فیلتر)، صف با DLQ.
- اولویت بندی: صف ها/خوشه های جداگانه برای P0/P1/P2، انتخاب مسیر «فقط حافظه پنهان» در صورت بروز حوادث.
6) مسیریابی و ذخیره سازی
GeoDNS/Anycast + Latency-Aware LB - همیشه به نزدیکترین مرکز سالم.
حافظه های نهان: لبه (HTML TTL کوتاه، TTL دارایی طولانی)، حافظه پنهان منفی، پیش فرض برای قناری ها.
انواع دارایی: پله AVIF/WebP/میزان ارسال بیت، نکات دستگاه (زاویه/تراکم پیکسل).
Hash-URL: قابلیت اتصال سخت، انتشار اتمی، برگشت هش.
yaml cdn:
ttl:
html: 60s manifest: 5m assets: 30d immutable_assets: true vary:
- "Accept-Encoding"
- "User-Agent-Class" # mobile/desktop/legacy signed_urls: true
7) سازگاری، نظم و نسخه ها
Manifest → مدل دارایی: مشتریان به مانیفست vX مشترک می شوند. Y.Z '، دارایی - تغییر ناپذیر است.
سفارش رویداد: رویدادهای مهم (jackpots، سیگنال های زنده) - در کلید/کانال.
SemVer نسخه و «دو خط» (GA و قناری). تخفیف ≥ 90 روز
مهاجرت بدون downtime: آبی سبز، زمینه های سازگار در مانیفست، ficheflags مشتری.
8) قابلیت مشاهده: SLI/SLO و سیگنال ها
هسته SLI:- TTI/TTL p95 (صفحه/بازی)،
- دارایی واکشی موفقیت٪، CDN آمار٪،
- جریان RTT p95 и نرخ اتصال مجدد،
- Manifest Drift (مشتریان در نسخه های میراث)،
- نرخ خطا (JS/WASM/SDK)،
- نسبت ضربه جغرافیایی (درخواست خدمات محلی)،
- هزینه هر دارایی 1K واکشی (CTS).
- TTI P95 ≤ 2 5S (Wi-Fi )/ ≤ 4. 0 (موبایل)،
- موفقیت ≥ 99 8٪، CDN ≥ 90٪ رسید،
- جریان RTT p95 ≤ 300 میلی ثانیه در منطقه،
- رانش آشکار ≤ 1٪ در 24 ساعت با توجه به GA،
- میزان خطا ≤ 0 4%.
تله متری: هیستوگرام های تاخیر، اندازه های بسته نرم افزاری، وب سایت های قطره ای/مجدد، بار جریان، نرخ سقوط آزاد.
9) ایمنی و امنیت
mTLS بین امضای خدمات وب هوک (HMAC، پنجره زمان معتبر).
DRM/anti-tamper: چک های یکپارچگی، CSP/Referrer-Policy، لیست های دامنه اجازه می دهد.
Anti-bot/anti-scraping: محدودیت نرخ، سیگنال های رفتاری، JA3/FP، چالش های پازل، ممنوعیت های «نرم».
PII-minimization: عدم اطلاعات شخصی در برچسب ها/سیاههها/بیانیهها.
اقامت: قوانین صادرات رسانه/محلی بر اساس منطقه/حوزه قضایی.
10) حالت های تخریب
کش فقط برای دارایی ها و «نهایی فقط» برای جریان.
مانیفست Lite (حداقل دارایی، ویدئو/انیمیشن غیرفعال).
عقب نشینی برازنده در مانیفست GA قبلی.
فقط خواندنی برای توابع غیر بحرانی، غیر فعال کردن درخواست «گران».
11) آزادی ها و قناری ها
پنجره های انتشار: روزهای هفته، ساعات «تمیز» منطقه/خوشه.
قناری 5٪ ترافیک/ ≥ 120 دقیقه ؛ دروازه های SLO (TTI/خطاها/RTT).
Rollback اتمی است (توسط هش/نسخه)، بدون شکستن جلسات.
CDN Prewarm برای مناطق گرم و بازی های محبوب.
yaml release:
canary:
share_pct: 5 min_duration_min: 120 gates:
tti_p95_ms: 2500 error_rate_pct: 0. 4 rollback:
auto_on: ["slo_breach","crash_rate>0. 6"]
target: "previous_ga"
12) داده ها و کاتالوگ ها
فهرست راهنمای آشکار
sql
CREATE TABLE manifests (
game_id TEXT,
version TEXT,
region TEXT,
status TEXT, -- canary ga deprecated asset_root TEXT, -- CDN prefix content_hash TEXT, -- Merkle/sha256 sdk_min TEXT,
created_at TIMESTAMPTZ,
PRIMARY KEY (game_id, version, region)
);
گزارش های نمونه دارایی
sql
CREATE TABLE asset_fetch_log (
ts TIMESTAMPTZ,
region TEXT,
game_id TEXT, version TEXT,
path TEXT, bytes INT,
status SMALLINT,
latency_ms INT,
served_from TEXT -- edge origin cache
);
معیارهای جریان
sql
CREATE TABLE stream_metrics (
ts TIMESTAMPTZ, region TEXT, channel TEXT,
rtt_p95_ms INT, reconnect_rate NUMERIC,
subscribers INT, drops INT
);
13) سیاست های مسیریابی/ذخیره سازی
yaml routing:
prefer_local: true fallback_chain: [nearest_healthy, master_hub]
qos:
P0: { rps_per_org: 1500, ack_timeout_ms: 2000, retries: 3 }
P1: { rps_per_org: 800 }
P2: { rps_per_org: 200, best_effort: true }
heavy_query_guard:
deny: ["logs>5000blocks","media_raw>200MB"]
require_token: true cache_policy:
manifest_ttl: "5m"
asset_ttl: "30d"
negative_ttl: "30s"
prewarm:
regions: ["eu","uk","na"]
top_games: 50
14) داشبورد
هسته جریان محتوا: TTI/TTL، موفقیت دارایی، ضربه CDN، رانش، نرخ خطا.
جریان: RTT p95, اتصال مجدد, قطره, مشترکین/کانال.
مسیریابی و QoS: در هر کلاس تاخیر/RPS، صف تاخیر، بازدید دریچه گاز.
اقتصاد: واکشی CTS/1k، ترافیک/منطقه، $/GB، TPS_per_$.
انطباق/امنیت: نقض CSP، امضای webhook، صادرات بر اساس منطقه.
15) حوادث کتاب بازی
A. رشد TTI/TTL p95
1. سودهی به فقط نهانگاه و آشکارسازی روشن ؛ 2) پیش گرم شدن/فشرده سازی را روشن کنید.
2. افزایش لبه/کپی API 4) تجزیه و تحلیل دارایی های سنگین، به طور موقت خاموش است.
B. افت ضربه CDN
1. بررسی TTL/تنوع ؛ 2) فعال prewarm و هش URL;
2. ترکیب دارایی ها (بسته بندی)، بهینه سازی تصاویر/فیلم ها.
C. قله ها را در جریان ها متصل کنید
1. محلی سازی مناطق مشکل ؛ 2) محدود کردن اشتراک/کانال ؛
2. افزایش بافر/پینگ ؛ 4) به طور موقت فرکانس به روز رسانی را کاهش دهید.
D. خطاهای فله WASM/JS
1. کشتن سوئیچ از نسخه مشکل ساز; 2) بازگشت به N-1 ؛
2. مجموعه ای از آثار/پشته ؛ 4) hotfix، پس از مرگ و موارد آزمون.
E. نقض اقامت صادرات
1. واحد تکرار بین منطقه ای ؛ 2) اصلاح ؛
2. اطلاع از انطباق ؛ 4) به روز رسانی قوانین/آزمون.
16) چک لیست پیاده سازی
1. اصلاح مدل جریان (کشیدن/فشار/جریان/دسته ای) و کلاس QoS.
2. Enter manifests and hash addressing of assets, پیکربندی CDN و prewarm.
3. پیکربندی مسیریابی (GeoDNS/Anycast)، کش ها و گارد پرس و جو سنگین.
4. SLI/SLO را تعریف کنید، تله متری (TTI/موفقیت دارایی/جریان RTT) را فعال کنید.
5. فعال کردن امنیت (mTLS، وب سایت های امضا شده، DRM، CSP).
6. سازماندهی انتشار (قناری، rollbacks هش)، حالت تخریب.
7. ساخت هسته/جریان/مسیریابی/هزینه/داشبورد انطباق.
8. به طور منظم آزمایش های هرج و مرج را انجام دهید: افت CDN، RTT بالا، از دست دادن/لرزش.
17) واژه نامه
TTI/TTL - زمان تعامل/دانلود کامل.
Geo-Hit Ratio: نسبت درخواست های ارائه شده به صورت محلی.
URL غیر قابل تغییر - آدرس هش که یکپارچگی/قابلیت اطمینان را تضمین می کند.
فشار پشتی - مکانیسم کنترل بار ورودی.
DLQ - «صف مرده» برای پیام های مشکل.
رانش - سهم مشتریان در مانیفست های بی ربط.
CTS در هر 1k fetches - هزینه 1000 نمونه از دارایی ها.
خط پایین: «جریان محتوا» فقط CDN ها و فایل ها نیست، بلکه یک سیستم مدیریت شده از مسیرها، QoS، نسخه ها و قابلیت مشاهده است. تظاهرات استاندارد شده، آدرس دهی هش، انتشار قناری و SLO های سخت، UX قابل پیش بینی را ارائه می دهند، و حالت های تخریب و ضد سوء استفاده، ثبات اکوسیستم را تحت بار و در صورت خرابی فراهم می کند.