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
| Prensip | Açıklama |
|---|---|
| Tek sorumluluk (per socket) | Her micro socket tek konu, tek QoS veya tek iş akışı. |
| Invariant'lar asla bozulmaz | I₁–I₇: ACL, dedup, sıralama, teslim, SLO, resume, bütünlük. |
| Ölçek birimleri: sub-socket | Sunucu 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
| Sorun | Micro Socket Çözümü |
|---|---|
| Tek sunucuda milyonlarca bağlantı | Sub-socket + gateway cluster ile izolasyon ve yük dağılımı. |
| Coğrafi gecikme | Dağıtık gateway; aynı invariant'lar her bölgede. |
| Çift işlem (duplicate) | I₂: messageId/idempotencyKey ile dedup (gateway + omurga). |
| Kesinti sonrası kayıp | I₆: RESUME + sessionId + lastSeq; gap replay. |
| Yetkisiz erişim | I₁: SUBSCRIBE/PUBLISH'ta ACL. |
| Sıra bozulması | I₃: seqNo + tek partition/stream. |
| Ölçülemezlik | I₅: p50/p95/p99 SLO ve test matrisi. |
Uygulama Adımları (Özet)
- Tasarım: Topic ve QoS'leri belirle; sub-socket sınırlarını çiz.
- Protokol: Kimlik, messageId, seqNo, QoS/ACK alanları.
- Gateway: ACL, dedup, sıra, resume algoritmaları; omurga entegrasyonu.
- Omurga: NATS/Kafka/Redis ile at-least-once veya exactly-once.
- İstemci: messageId/seqNo/RESUME uyumlu SDK.
- Test: Çift işlem, sıralama, gecikme, resume, ACL matrisi.
- 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.