52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# NATS JetStream
|
|
|
|
#kubernetes #messaging #słownik
|
|
|
|
## Co to jest?
|
|
|
|
**NATS** to lekki, cloud-native system messaging. **JetStream** to warstwa persistence dodana do NATS, umożliwiająca **durable pub/sub** z replay, retention i consumer groups.
|
|
|
|
## NATS vs JetStream
|
|
|
|
| NATS Core | NATS JetStream |
|
|
|-----------|----------------|
|
|
| Fire-and-forget | Durable (zapisane na dysk) |
|
|
| At-most-once | At-least-once delivery |
|
|
| Brak replay | Replay od dowolnego punktu |
|
|
| Brak consumer groups | Consumer groups + ack |
|
|
| Ultra-fast | Szybki (trochę wolniejszy) |
|
|
|
|
## Porównanie z alternatywami
|
|
|
|
| System | Latency | Throughput | Complexity | Use case |
|
|
|--------|---------|------------|------------|----------|
|
|
| **NATS JetStream** | ~1ms | ~100K msg/s | **Niski** | Cloud-native, K8s |
|
|
| Apache Kafka | ~5ms | ~1M msg/s | Wysoki | Big data, streaming |
|
|
| RabbitMQ | ~3ms | ~50K msg/s | Średni | Enterprise messaging |
|
|
| Redis Streams | ~1ms | ~200K msg/s | Niski | Caching + messaging |
|
|
|
|
## Kluczowe koncepty JetStream
|
|
|
|
| Koncept | Opis |
|
|
|---------|------|
|
|
| **Stream** | Named storage dla wiadomości (temat wildcard) |
|
|
| **Consumer** | Subskrybent z cursor/offset tracking |
|
|
| **Durable Consumer** | Consumer z persistence (survives restarts) |
|
|
| **Ack** | Potwierdzenie przetworzenia wiadomości |
|
|
| **Retention** | Limits (max age, max bytes) lub Interest-based |
|
|
|
|
## Użycie w Sympozium
|
|
|
|
NATS JetStream jest **centralnym event bus'em** Sympozium:
|
|
|
|
- **Stream**: `sympozium` z subjects `sympozium.>`
|
|
- **Retention**: 24h max age
|
|
- **Deployment**: [[StatefulSet]] w `sympozium-system`
|
|
- **URL**: `nats://nats.sympozium-system.svc:4222`
|
|
|
|
Tematy: patrz [[NATS JetStream - Event Bus]]
|
|
|
|
---
|
|
|
|
Powiązane: [[NATS JetStream - Event Bus]] | [[Przepływ danych i IPC]] | [[StatefulSet]]
|