GH GambleHub

API دروازه و مسیریابی

1) نقش دروازه API در معماری

یک API Gateway تنها نقطه ورود به میکروسرویس است. آیا او:
  • درخواست مسیرها (توسط مسیر/هدر/جغرافیایی/وزن/نسخه).
  • محافظت از محیط (TLS/mTLS، WAF، DDoS، محدودیت نرخ، authN/Z).
  • ترافیک را کنترل می کند (canary/AB، shadow/mirror، circuit breaker، retras، timeout).
  • پروتکل های استاندارد (REST/gRPC/WebSocket)، هدر ها، کد ها.
  • مشاهدات (سیاهههای مربوط، معیارها، ردیابی، همبستگی).
  • تبدیل و اعتبار (JSON/XML، عادی سازی، اعتبار سنجی طرح).

برای iGaming، این نیز جغرافیایی (مسدود کردن کشور/سن)، مسیریابی پرداخت هوشمند و سیاست های بازی مسئول در لبه است.

2) گزینه های مسیریابی

مبتنی بر مسیر: '/api/v1/payments/→ payments-svc '.
میزبان مبتنی بر: "eu. API. به عنوان مثال. com → eu-edge ',' psp. به عنوان مثال. کام → PSP پروکسی '.
مبتنی بر هدر: 'X-Client: partner-A' → partner backend; 'Accept: application/grpc'.
مسیریابی جغرافیایی: توسط IP/ASN/کشور (GDPR/ممنوعیت های محلی، تاخیر).

وزن/قناری: «90٪» در نسخه قدیمی، «10٪» در نسخه جدید ؛ بازگشت سریع

مسیریابی ادعا: по 'JWT. ادعا می کند. ردیف/نقش/منطقه "(به عنوان مثال، محدودیت های بالا غلتک → حق بیمه).
شکست: دارایی-دارایی/دارایی-بدهی بین مرکز داده/ابر و PSP.

3) امنیت محیط

TLS در همه جا: TLS 1. 2 + در خارج، mTLS در داخل (shlyuz↔servisy).
OAuth2/JWT: تأیید امضا، حسابرسی «exp/nbf/aud/scope»، چرخش JWKS ؛ اعتبار کش با TTL.
HMAC: امضای بدن برای وبهاب/پرداخت.
کلید های API: برای مشتریان سیستم ؛ ارتباط با سهمیه/نقش.
WAF: قوانین اساسی (تزریق، ناهنجاری های پروتکل)، اندازه بدن، لیست انکار کشورها.
حفاظت DDoS: محدود کردن اتصال، کوکی های SYN، محدودیت نرخ در IP/key/endpoint.
اعتماد صفر: سیاست های اجباری (SPIFFE/SPIRE، هویت خدمات)، اصل حداقل حقوق.
حریم خصوصی: ویرایش PII در سیاهههای مربوط، PAN/IBAN پوشش، سیاست ذخیره سازی.

4) محدودیت ها، سهمیه ها و حفاظت در برابر انفجار

Модели: سطل نشانه، سطل نشتی، پنجره ثابت/کشویی.
مرزها: در هر IP، در هر کلید، در هر کاربر، در هر مسیر.

اختیاری:
  • پشت سر هم + پایدار (به عنوان مثال،. '50 rps پشت سر هم', '10 rps حفظ').
  • Retry-Budget and Slow-Loris protection (دفعات بازدید: وقفه).
  • سهم به روز/ماه برای شرکا.

5) تحولات و اعتبارسنجی

عادی سازی سرصفحه ها (trace-id، locale، client-id).
درخواست/پاسخ نقشه برداری.
اعتبار سنجی طرح (OpenAPI/JSON Schema) قبل از پراکسی - شکست اولیه 4xx.
فشرده سازی/' پذیرش رمزگذاری '، ذخیره سازی (پایین را ببینید).

6) ذخیره سازی و عملکرد

نهانگاه لبۀ فهرستهای راهنما، فرادادههای عمومی، پیکربندی) TTL، «ETag »/« If-None-Match» (.
میکرو کش 1-5 ثانیه برای GET داغ (بار پیک را کاهش می دهد).
منفی کش کوتاه (در 404/خالی) - مراقب باشید.
درخواستهای تامینی و درخواستهای رقابتی برای کپی در آستانه p95>.

7) زمان، عقب نشینی، انعطاف پذیری

زمان بندی: اتصال/خواندن/نوشتن به طور جداگانه ؛ P95 معقول نشانه.

Retrai: روش های idempotent (GET/PUT) با عقب نشینی + jitter ؛ بودجه مجدد

POST idempotency: 'Idempotency-Key' + سرویس/deduplication دروازه.

قطع کننده مدار: توسط خطاها/تأخیر ؛ محاکمه نیمه باز

دیواره/جداسازی استخر توسط بالادست.

8) نسخه و سازگاری

روش ها:
  • نشانی اینترنتی: "/v1/... (مسیرهای ساده، اما «پر سر و صدا»).
  • Header/Content-Negotiation: 'Accept: application/vnd. برنامه v2 + json '.
  • ویژگی پرچم/قابلیت سرور - برای سازگاری جزئی تغییر.

سیاست: SemVer, پنجره پشتیبانی (به عنوان مثال, 'v1' = 12-18 ماه), برنامه depriction, پاسخ های سازگار برای برنامه های افزودنی (اضافه کردن زمینه نمی شکند).

9) قابلیت مشاهده و کنترل کیفیت

همبستگی: 'traceparent '/' x-request-id' مورد نیاز است ؛ پرتش ميکنيم پايين.
OpenTelemetry: RPS/p50/p95/p99/5xx/4xx، اشباع، سعی مجدد/معیارهای رویداد مدار.

سیاهههای مربوط: JSON ساختاری ؛ پنهان کردن PII ؛ سطح توسط کد

نمونه برداری ردیابی: پایه 5-10٪ + هدف برای خطاها/آهسته است.
SLO/هشدار: توسط مسیرها/مشتریان (به روز رسانی، تاخیر، خطا).

10) انتشار مدیریت ترافیک

سوئیچ DNS/LB آبی سبز.
قناری: سهم وزن/بخش (منطقه، شریک، نقش).
سایه/آینه: کپی ترافیک به نسخه جدید بدون پاسخ به مشتری.
کشتن سوئیچ: پرچم به سرعت غیر فعال کردن مشکل بالادست/ویژگی.

11) مسیریابی پرداخت هوشمند (iGaming)

قوانین انتخاب PSP: جغرافیایی، ارز، مقدار، میزان خطر، در دسترس بودن، کمیسیون.
Failover PSP: انتقال خودکار در '5xx/timeout'.
قانون همان روش: بازگشت/خروجی از طریق روش اصلی - بررسی در لبه.
شناسه پرداخت: کلید 'userId + مقدار + ارز + هدف'.
شفافیت ETA: دروازه وضعیت ها و علل شکست (نه کدهای PSP) را اضافه می کند.

12) سیاست های بین منطقه ای و انطباق

فیلترهای جغرافیایی: لیست سفید/سیاه کشورها، محدودیت های سنی، محدوده IP.
داده های ساکن: مسیریابی به خوشه های منطقه ای (GDPR/قوانین محلی).
سیاههها و TTL: ذخیره سازی بر اساس منطقه، ناشناس سازی خودکار.

13) نمونه های پیکربندی

13. 1 NGINX (مسیریابی + محدود + هدر)

nginx http {
map $http_x_request_id $req_id { default $request_id; }
limit_req_zone $binary_remote_addr zone=per_ip:10m rate=20r/s;

server {
listen 443 ssl http2;
server_name api. example. com;

Security add_header Strict-Transport-Security "max-age = 31536000" always;
add_header X-Content-Type-Options nosniff;

Limit on IP location/api/v1/{
limit_req zone=per_ip burst=40 nodelay;
proxy_set_header X-Request-Id $req_id;
proxy_set_header X-Client-Ip $remote_addr;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass http://payments_v1;
}

Canary traffic by header location/api/v2/{
if ($http_x_canary = "1") { proxy_pass http://payments_v2; }
proxy_pass http://payments_v1;
}
}
}

13. 2 نماینده (JWT، محدودیت نرخ، مجددا)

yaml static_resources:
listeners:
- name: https address: { socket_address: { address: 0. 0. 0. 0, port_value: 443 } }
filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. network. http_connection_manager. v3. HttpConnectionManager route_config:
name: local_route virtual_hosts:
- name: payments domains: ["api. example. com"]
routes:
- match: { prefix: "/api/v1/payments" }
route:
cluster: payments_v1 timeout: 5s retry_policy:
retry_on: "connect-failure,refused-stream,5xx,retriable-status-codes"
num_retries: 2 per_try_timeout: 2s http_filters:
- name: envoy. filters. http. jwt_authn typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. jwt_authn. v3. JwtAuthentication providers:
main:
issuer: "https://auth. example. com/"
remote_jwks: { http_uri: { uri: "https://auth. example. com/.well-known/jwks. json" } }
forward: true rules:
- match: { prefix: "/api/" }
requires: { provider_name: "main" }
- name: envoy. filters. http. ratelimit
- name: envoy. filters. http. router clusters:
- name: payments_v1 connect_timeout: 0. 5s type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: { cluster_name: payments_v1, endpoints: [{ lb_endpoints: [{ endpoint: { address: { socket_address: { address: payments, port_value: 8080 }}}}]}] }
outlier_detection: { consecutive_5xx: 5, interval: 5s, base_ejection_time: 30s }

14) چک لیست

قبل از انتشار مسیر

  • طرح احراز هویت (JWT/JWKS، کلید، حافظه پنهان TTL).
  • مدت زمان/Retrays/Idempotency پیکربندی شده است.
  • محدودیت ها: در هر IP، در هر کلید، در هر مسیر ؛ سهمیه شریک
  • اعتبار طرح درخواست/پاسخ.
  • سیاهههای مربوط و آثار با «ردیابی»، ماسک PII.
  • SLO/هشدارها و داشبورد.
  • قوانین جغرافیایی/انطباق/سن بررسی شده است.

معاملات و پرداخت ها

  • PSP مسیریابی هوشمند: قوانین، اولویت ها، Feilover.
  • همان روش در لبه بررسی می شود.
  • وضعیت های شفاف و کدهای خطا برای مشتری (بدون کد PSP خام).

نسخه ها

  • قناری/AB و کشتن سوئیچ، طرح برگشت.
  • ترافیک سایه به نسخه جدید، مقایسه معیارها.
  • تست بار و اهداف p95.

15) معیارهای کیفیت (حداقل)

در دسترس بودن/SLO توسط مسیرها ؛ نرخ خطا 5xx/4xx

تاخیر p50/p95/p99 (خارجی و داخلی).
رویدادهای تکرار/اتمام وقت/مدار) سطح نویز (.
نسبت ضربه کش و صرفه جویی در RPS.
بازدید های محدود و درخواست های کاهش یافته.
KPI های مسیریابی PSP: موفقیت، TtW، درصد feilover، کمیسیون.

16) ضد الگوهای

یک محدودیت کامل «برای همه چیز».
عقب نشینی «فوری» بدون لرزش (تشدید طوفان).
Trust 'X-Forwarded-For' بدون نرمال سازی و لیست پروکسی قابل اعتماد.
زمان های سخت به استثنای p95 (مثبت کاذب).
تحولات سختی که سازگاری را از بین می برد.
سیاهههای مربوط با PII/PAN/اسرار.
API داخلی و خارجی را تحت همان دامنه/سیاست مخلوط کنید.

17) الگوهای پاسخ و خطاها (میکروکپی)

۴۲۹ Too many requests: "محدودیت درخواست رسیده است. در N ثانیه تکرار کنید یا سهمیه را در دفتر شریک افزایش دهید"

401/403: نشانه نامعتبر/منقضی شده است. لطفا دوباره ثبت نام کنید"

۴۰۸/۵۰۴: سرویس بیشتر از آنچه انتظار میرود پاسخ میدهد. این درخواست پذیرفته نشد"

Idempotency-conflict: یک درخواست با این Idempotency-Key قبلا پردازش شده است (وضعیت: موفقیت/شکست).

18) فرآیند پیاده سازی (مراحل)

1. مدل مسیر: نقشه دامنه/مسیر/منطقه.
2. سیاست های امنیتی: TLS/mTLS، WAF، authN/Z، کلید/JWKS.
3. قابلیت اطمینان: زمان بندی، بازپرداخت، بی نظمی، قطع کننده مدار.
4. قابلیت مشاهده: سیاهههای مربوط/معیارها/ردیابی، همبستگی.
5. کش/perf: لبه/میکرو کش، فشرده سازی، استخر اتصال.
6. مسیریابی پرداخت: قوانین، تست ها، نظارت.
7. نسخه ها: canary/shadow, kill-switch, rollback plan.
8. انطباق/جغرافیایی: فیلترهای کشور، ذخیره سازی داده ها، سن.

برگه تقلب نهایی

محیط سختگیرانه (TLS/mTLS، WAF، محدودیت ها) + ترافیک مدیریت شده (retrai، مدار، قناری).
اعتبار سنجی و تحولات در لبه → کمتر از نقص «در داخل» است.
قابلیت مشاهده با ماسک های trace-id و PII یک گزینه نیست، بلکه یک استاندارد است.
مسیریابی پرداخت هوشمند و انطباق جغرافیایی برای iGaming بسیار مهم است.
نسخه بندی و محرومیت سیاست - پیش بینی برای شرکای.

Contact

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

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

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

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

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

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