Skip to content

Micro Socket Metodolojisi

Micro Socket Nedir?

Micro Socket, mikroservis kavramının socket ve gerçek zamanlı iletişim alanına taşınmış halidir.

  • Sunucu tarafı: Her topic/kanal için sub-socket (abonelik grubu); milyonlarca eşzamanlı yayın.
  • İstemci tarafı: Çoklu micro socket bağlantıları; her biri tek sorumluluk (tek konu veya tek QoS).
  • Küresel: Dağıtık gateway'ler, aynı invariant'lar ve protokol ile socket sunucu sorunlarının tutarlı çözümü.

Prensipler

PrensipAçıklama
Tek sorumluluk (per socket)Her micro socket tek konu, tek QoS veya tek iş akışı.
Invariant'lar asla bozulmazI₁–I₇: ACL, dedup, sıralama, teslim, SLO, resume, bütünlük.
Ölçek birimleri: sub-socketSunucu milyonlarca sub-socket açabilir; hafif ve izole.
İstemci de microİstemci birden fazla micro socket kullanabilir (fiyat / risk / ödeme ayrı).
Küresel tek davranışCoğrafya/gateway fark etmeksizin aynı protokol ve garantiler.

Küresel Sorunlar ve Çözümler

SorunMicro Socket Çözümü
Tek sunucuda milyonlarca bağlantıSub-socket + gateway cluster ile izolasyon ve yük dağılımı.
Coğrafi gecikmeDağıtık gateway; aynı invariant'lar her bölgede.
Çift işlem (duplicate)I₂: messageId/idempotencyKey ile dedup (gateway + omurga).
Kesinti sonrası kayıpI₆: RESUME + sessionId + lastSeq; gap replay.
Yetkisiz erişimI₁: SUBSCRIBE/PUBLISH'ta ACL.
Sıra bozulmasıI₃: seqNo + tek partition/stream.
ÖlçülemezlikI₅: p50/p95/p99 SLO ve test matrisi.

Uygulama Adımları (Özet)

  1. Tasarım: Topic ve QoS'leri belirle; sub-socket sınırlarını çiz.
  2. Protokol: Kimlik, messageId, seqNo, QoS/ACK alanları.
  3. Gateway: ACL, dedup, sıra, resume algoritmaları; omurga entegrasyonu.
  4. Omurga: NATS/Kafka/Redis ile at-least-once veya exactly-once.
  5. İstemci: messageId/seqNo/RESUME uyumlu SDK.
  6. Test: Çift işlem, sıralama, gecikme, resume, ACL matrisi.
  7. SLO: p50/p95/p99 ve resume başarı oranı izleme.

Detaylı algoritmalar ve Node.js örnekleri için Algoritmalar ve Node.js Gateway bölümlerine bakın.

Star the repo on GitHub if this documentation is useful — link in the navbar above.