GH GambleHub

جریان داده ها بین گره ها

(بخش: اکوسیستم و شبکه)

1) جوهر و اهداف

جریان داده ها بین گره ها کانال های مدیریت شده رویدادها، حالت ها و مصنوعات بین نقش های اکوسیستم (اعتبار سنج ها/خوانندگان/نمایه سازان/پل ها/دروازه ها/ذخیره ها/تجزیه و تحلیل) است. اهداف:
  • قابلیت پیش بینی: SLO های پایدار با تاخیر/موفقیت/طراوت.
  • قابلیت اطمینان: مقاومت در برابر تلفات، تکراری، reorgs.
  • امنیت و انطباق: رمزگذاری، امضا، اقامت.
  • مقیاس پذیری: توزیع جغرافیایی، پارتیشن بندی، QoS.

2) طبقه بندی جریان

1. کنترل هواپیما: پیکربندی ها، phicheflags، مسیریابی/سیاست های محدود.
2. داده هواپیما - رویداد: رویدادهای دامنه ("سپرده. '، پرداخت. '،' پل. ').
3. Data Plane - stream: جریانهای طولانی مدت (gRPC/WebSocket) برای سیگنال ها و معیارهای زنده.
4. دسته/Backfill: دانلود برش های تاریخی، تکرار، عکس های فوری.
5. تکرار/ضد آنتروپی: همگام سازی حالت، merclization، جریان CRDT.
6. Telemetry/observability: logs/metrics/trails side-band، با UX اصلی تداخل ندارد.

هر نوع کلاس QoS و قوانین retray/order خود را دارد.

3) توپولوژی و مسیریابی

Hub-and-Spoke: هاب های منطقه ای به عنوان لاستیک ؛ نمایشنامه - گره نقش.
Mesh/P2P: مش جزئی برای تکرار/شایعات بی اساس.
Edge-Tiered: دروازه های لبه نازک (rate-limit/cache) → خوشه های منطقه ای ضخیم.
مسیریابی جغرافیایی: قوانین اقامت LB + Anycast/Latency-Aware.

Key - partitioning: 'partition _ key = chainId' tenant 'topic' entityId 'نظم و مقیاس قابل پیش بینی را می دهد.

4) حمل و نقل و فرمت ها

HTTP/2/3، gRPC/QUIC - تاخیر کم، چندگانه، keepalive.
Kafka/Pulsar/NATS - صف با پایداری/احزاب/گروه های مصرف کننده.
WebSocket - رویدادهای فشار و تغذیه زنده.
فرمت ها: Protobuf/Avro (طرح هایی با تکامل)، JSON برای API های خارجی.
آدرس هش و Merkle برای تأیید صحت.

5) سفارش، تحویل و نهایی سازی

مدل تحویل:
  • حداقل یک بار (پیش فرض ؛ idempotency/deadup مورد نیاز).
  • اثر دقیقا یک بار از طریق Outbox/Inbox + مصرف کننده idempotent.
  • سفارش: تضمین شده در حزب ؛ نظم بین حزبی تضمین شده نیست.
  • Finalization: statuses 'observed → confirmed (K) → invalid (reorg)'; برای خوش بینانه - پنجره اختلاف.

6) idempotence و dedup

کلید Idempotence برای رویدادها:
  • 'idempotency _ key = $ {chainId} | $ {block} | $ {tx} | $ {logIndex} | $ {type}'
قوانین و مقررات:
  • Upsert توسط کلید، TTL پنجره deduplication ≥ 72 ساعت.
  • برای یک درگیری، سیاست «منبع حقیقت» (اولویت، نسخه، امضا) است.
  • برای درخواست های HTTP، هدر «Idempotency-Key» + پاسخ ورود به سیستم است.

7) صف، فشار پشتی و سهمیه

صف: احزاب توسط کلید ؛ DLQ برای پیام های «سمی».
فشار پشتی: اعتبار/نشانه، حداکثر حد پرواز، قطع کننده مدار.
سهمیه/QoS: P0 (بحرانی)، P1 (محصول)، P2 (فله). استخر تقسیم/RPS محدود/بایت/S/اشتراک.
کنترل پذیرش: رد اولیه درخواست های «گران»، محافظت از محدوده/اندازه.

8) سازگاری و مدل های داده

خواندن-شما-نوشتن در حزب/گره.
سازگاری احتمالی بین مناطق/احزاب.
CRDT برای تکرار بدون تداخل برخی از مجموعه ها (شمارنده ها، مجموعه ها).
عکس های فوری + سیاهههای مربوط به بوت استرپ سریع و پخش قطعی.

9) امنیت و اعتماد

mTLS بین گره ها، پین کلید، چرخش.
امضای پیام/webhook، زمان بندی و پنجره های ضد پخش.

رمزگذاری در حال حرکت/در حالت استراحت ؛ جداسازی کلیدهای منطقه ای

PII-minimization: نشانه گذاری، ممنوعیت اطلاعات شخصی در برچسب ها/معیارها.

10) کارایی: بسته بندی، فشرده سازی، کش

دسته بندی: گروه بندی پیام های کوچک برای کاهش سربار.
فشرده سازی: zstd/gzip با لغت نامه های امن.
پول نقد: پاسخ های منفی و دایرکتوری های «داغ» ؛ TTL و ناتوانی توسط رویداد.

11) نمودار داده ها (منابع)

ثبت نام جریان/لات

sql
CREATE TABLE streams (
name TEXT PRIMARY KEY,
partitions INT,
qos TEXT,        -- P0    P1    P2 retention_days INT,
schema_version TEXT
);

CREATE TABLE offsets (
stream TEXT, partition INT, consumer_group TEXT,
offset BIGINT, updated_at TIMESTAMPTZ,
PRIMARY KEY (stream, partition, consumer_group)
);

ورود به سیستم رویداد (upsert idempotent)

sql
CREATE TABLE events_core (
id UUID PRIMARY KEY,
idempotency_key TEXT UNIQUE,
ts TIMESTAMPTZ,
partition_key TEXT,
type TEXT,
payload JSONB,
status TEXT,      -- observed    confirmed    finalized    invalidated signature TEXT
);

DLQ/قرنطینه

sql
CREATE TABLE dlq (
id UUID PRIMARY KEY,
stream TEXT, partition INT, offset BIGINT,
reason TEXT, payload JSONB, ts TIMESTAMPTZ
);

12) سیاست ها (YAML)

QoS و محدودیت ها

yaml qos:
P0: { ack_timeout_ms: 2000, retries: 3, backoff_ms: [100,400,800], rps_per_org: 1500 }
P1: { ack_timeout_ms: 5000, retries: 2, rps_per_org: 800 }
P2: { best_effort: true, rps_per_org: 200 }
limits:
max_message_bytes: 1048576 max_stream_subscriptions_per_client: 20

نهایی سازی و پنجره ها

yaml finality:
eth-mainnet: { k: 12 }
polygon:   { k: 256 }
optimistic: { k: 0, challenge_minutes: 20 }

مسیریابی/اقامت

yaml routing:
prefer_local_region: true fallback: [nearest_healthy, master_hub]
residency:
eu: ["eu"]
uk: ["uk"]

13) قابلیت مشاهده: SLI/SLO

SLI (هسته):
  • تاخیر p95/p99 (ورود → خروج، در هر جریان/QoS).
  • میزان موفقیت/میزان افت.
  • صف تاخیر p95 و تاخیر مصرف کننده توسط حزب.
  • طراوت p95 (مصرف → مصرف).
  • نرخ تجدید سازمان/نامعتبر (اگر onchain).
  • کارایی Dedup (٪ جذب idemotently).
  • نسبت ضربه جغرافیایی (به صورت محلی سرویس).
SLO (نشانه ها):
  • P0 تاخیر p95 ≤ 400 میلی ثانیه ؛ موفقیت ≥ 99 95%; صف تاخیر p95 ≤ 2 с ؛ طراوت p95 ≤ 60 с.
  • راندمان Dedup ≥ 99٪ ؛ DLQ ≤ 0 1 درصد ترافیک

داشبورد: جریان هسته/تاخیر و طراوت/QoS و خطاها/جغرافیایی/امنیت (mTLS/امضا).

14) الگوهای مصرف کننده

صندوق خروجی/صندوق ورودی: انتشار اتمی و برنامه idemotent.
دقیقا یک بار اثر: ذخیره آخرین کلید اعمال شده و نسخه.
علامت های سفید: داده های دیر.
Idempotent Side-Effects: نمایش داده شد خارجی تنها با کلید و پاسخ ورود به سیستم.

15) حالت های تخریب

حالت Finished-only: ما فقط رویدادهای نهایی را صادر می کنیم.
فقط برای کتاب های مرجع، روش های سنگین انجماد.
دریچه گاز P2 و «حالت رژیم غذایی» برای جریان (کاهش نرخ تجدید).
فقط خواندنی برای API های ثانویه.

16) انتشار و مهاجرت بدون Downtime

آبی سبز/قناری توسط جریان و مصرف کنندگان.
Schema-first: فقط فیلدها را اضافه کنید MAJOR - نسخه های موازی از موضوعات.
مهاجرت افست: مصرف کنندگان سایه، مقایسه تاخیر/موفقیت، تعویض.

17) مقررات عملیاتی

روزانه: گزارش SLO (تاخیر/موفقیت/تاخیر/طراوت)، حسابرسی امضا، بررسی DLQ.
هفتگی: بازبینی دسته ها/سهمیه ها، آزمون DR (بوت استرپ از عکس فوری)، تجزیه و تحلیل کارایی Dedup.
ماهانه: آزمون هرج و مرج (از دست دادن/لرزش, شکست کارگزار, تجدید سازمان پشت سر هم), تجدید نظر در پنجره پایانی.
قبل از انتشار: قناری ≥120 دقیقه، دروازه های SLO، طرح برگشت.

18) حوادث کتاب بازی

A. انفجار صف/تاخیر مصرف کننده

1. افزایش مصرف کنندگان/KEDA ؛ 2) احزاب توزیع مجدد ؛ 3) انجماد P2 و کارهای فله ؛ 4) تجزیه و تحلیل کلید های «داغ».

B. رشد P95 تاخیر P0

1. P2-throttle، اولویت بندی P0 ؛ 2) دروازه های مقیاس/کارگزاران ؛ 3) کش فقط برای کتاب های مرجع ؛ 4) تخلیه بیرونی.

C. DLQ بالا/دوبله

1. بررسی کلید idempotence/TTL ؛ 2) تقویت dedup ؛ 3) محدود کردن تولید کننده پر سر و صدا ؛ 4) پخش پس از تعمیر.

D. طرح های رانش/قرارداد

1. فعال کردن حالت دقیق (قطع موارد نامعتبر) ؛ 2) اطلاع به تولید کننده ؛ 3) آداپتور را آزاد کنید 4) به روز رسانی linters.

E. نقض اقامت/امضا

1. واحد صادرات/کانال ؛ 2) چرخش کلید/serts ؛ 3) حسابرسی و پس از مرگ ؛ 4) به روز رسانی سیاست ها.

19) چک لیست پیاده سازی

1. انواع جریان و کلید پارتیشن بندی را تعریف کنید.
2. فعال کردن idempotence/dedup و نهایی کردن با K/پنجره اختلاف.
3. پیکربندی صف ها، QoS، سهمیه ها و فشار پشتی.
4. اجرای mTLS/امضا و سیاست اقامت.
5. طرحوارهها/ثباتها (جریانها، آفستها، DLQ) و فاصله سنجی SLI/SLO را وارد کنید.
6. سازماندهی مهاجرت مدار canary/blue-green و downtime-free.
7. کار کردن حالت های تخریب و playbooks حادثه.

20) واژه نامه

فشار پشتی - کنترل بار ورودی (اعتبارات/نشانه ها/محدودیت ها).
DLQ - «صف مرده» برای پیام های مشکل.
CRDT - ساختارهای داده با حل تعارض بدون هماهنگی.
Finality - برگشت ناپذیری رویداد/حالت.
اثر دقیقا یک بار - نتیجه تکرار ایمن بیش از حداقل یک بار تحویل.
علامت گذاری به عنوان پیشرفت پردازش برای رویدادهای اواخر.
Outlier-ejection - محرومیت از موارد تخریب شده از استخر.

خط پایین: جریان داده ها بین گره ها فقط یک «صف و شنونده» نیست، بلکه یک نظم سیستماتیک نظم، نهایی سازی، idempotency، امنیت و مشاهده است. کلید های پارتیشن بندی استاندارد، QoS/سهمیه ها، طرح های سختگیرانه و SLO ها، همراه با حالت های تخریب و کتاب های بازی، کانال های انتقال داده های پایدار اکوسیستم را در مقیاس و تحت ممیزی قرار می دهند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.