Architecture: Add Message Broker (Pulsar/Redpanda) integration
- New section: Message Broker (Pulsar/Redpanda) - Updated Mermaid diagram with Message_Broker_Network - Added Scorpio (FIWARE) native Kafka integration note - New data flow: MQTT -> Message Broker -> Backends - Updated connections list (5. Message Broker)
This commit is contained in:
@@ -116,27 +116,64 @@ graph TD
|
|||||||
DG --- DC[digital-twin-connector]
|
DG --- DC[digital-twin-connector]
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Flux de données simplifiés
|
%% NOUVEAU : Message Broker Network
|
||||||
EM -->|MQTT| DG
|
subgraph Message_Broker_Network [Message Broker (Pulsar/Redpanda)]
|
||||||
EM -->|MQTT| OR
|
MB[Message Broker\n(Pulsar :6650 / Redpanda :9092)]
|
||||||
|
MB --- SK %% Kafka-compatibilité (Stellio Kafka)
|
||||||
|
end
|
||||||
|
|
||||||
|
%% Flux de données avec Message Broker
|
||||||
|
EM -->|MQTT| MB
|
||||||
|
MO -->|Metrics| MB
|
||||||
|
MB -->|Topics| OR
|
||||||
|
MB -->|Topics| ST
|
||||||
|
MB -->|Metrics| PR
|
||||||
|
MB -->|Topics| IF
|
||||||
OR -->|NGSI-LD| FR
|
OR -->|NGSI-LD| FR
|
||||||
OR -->|NGSI-LD| ST
|
OR -->|NGSI-LD| ST
|
||||||
IF -->|InfluxDB| DG
|
IF -->|InfluxDB| DG
|
||||||
DG -->|Grafana Dashboards| User[Utilisateur]
|
DG -->|Grafana Dashboards| User[Utilisateur]
|
||||||
|
|
||||||
|
%% Note Scorpio integration
|
||||||
|
SC[Scorpio (FIWARE)\n:Kafka native] -.->|Kafka| MB
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Connexions Clés
|
## 5. Message Broker (Pulsar/Redpanda) - NOUVEAU
|
||||||
|
|
||||||
|
Pour faciliter l'ingestion et le routage des données vers plusieurs backends (Prometheus, Context Brokers, etc.), un **message broker** sera ajouté entre les brokers MQTT et les services en aval.
|
||||||
|
|
||||||
|
### Options préférées :
|
||||||
|
- **Apache Pulsar** : Alternative cloud-native à Kafka, avec support natif des topics persistants et de la messagerie multi-tenant.
|
||||||
|
- **Redpanda** : Compatible Kafka, mais sans dépendance ZooKeeper, plus simple à déployer.
|
||||||
|
|
||||||
|
### Intégration avec FIWARE Scorpio :
|
||||||
|
- **Scorpio** (Context Broker FIWARE) intègre nativement **Kafka**, ce qui facilitera l'interconnexion avec le message broker.
|
||||||
|
|
||||||
|
### Nouveau flux de données :
|
||||||
|
```
|
||||||
|
MQTT Brokers (EMQX, Mosquitto, BunkerM)
|
||||||
|
↓
|
||||||
|
Message Broker (Pulsar/Redpanda)
|
||||||
|
↓ ↓ ↓
|
||||||
|
├─→ Context Brokers (Orion-LD, Stellio, Scorpio)
|
||||||
|
├─→ Prometheus (via exporter)
|
||||||
|
├─→ Time-Series DB (InfluxDB, CrateDB)
|
||||||
|
└─→ autres backends (OpenRemote, GeoServer, etc.)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Connexions Clés
|
||||||
|
|
||||||
1. **Traefik** (`:80`/`:443`) : Reverse proxy pour tous les services exposés à l'hôte.
|
1. **Traefik** (`:80`/`:443`) : Reverse proxy pour tous les services exposés à l'hôte.
|
||||||
2. **Brokers MQTT** (Mosquitto `:1883`, EMQX `:11883`) : Réception des données du simulateur et des capteurs IoT.
|
2. **Brokers MQTT** (Mosquitto `:1883`, EMQX `:11883`) : Réception des données du simulateur et des capteurs IoT.
|
||||||
3. **Context Brokers** (Orion-LD `:2026`, Stellio `:8087`) : Reçoivent les données NGSI-LD et les transmettent à FROST et Grafana.
|
3. **Message Broker** (Pulsar `:6650`/Redpanda `:9092`) : **NOUVEAU** - Ingest et routage vers les backends.
|
||||||
4. **FROST-Server** (`:8090`) : Stockage des données OGC SensorThings, connecté à PostgreSQL (`frost_http-database-1`).
|
4. **Context Brokers** (Orion-LD `:2026`, Stellio `:8087`, Scorpio `:?`) : Reçoivent les données NGSI-LD (Scorpio via Kafka natif).
|
||||||
5. **Grafana** (`:3001`) : Visualisation des données depuis InfluxDB, Prometheus, et (via adaptateurs) Orion-LD/Stellio.
|
5. **FROST-Server** (`:8090`) : Stockage des données OGC SensorThings, connecté à PostgreSQL (`frost_http-database-1`).
|
||||||
6. **OpenRemote** (`:8080`) : Gestion des assets IoT, authentification via Keycloak, proxyé par Traefik.
|
6. **Grafana** (`:3001`) : Visualisation des données depuis InfluxDB, Prometheus, et (via adaptateurs) Orion-LD/Stellio.
|
||||||
7. **GeoServer** (`:8080`) : Serveur de tuiles cartographiques, connecté au réseau FROST.
|
7. **OpenRemote** (`:8080`) : Gestion des assets IoT, authentification via Keycloak, proxyé par Traefik.
|
||||||
8. **Node-RED** (`:1880`) : Alternative possible pour le simulateur IoT (projeté).
|
8. **GeoServer** (`:8080`) : Serveur de tuiles cartographiques, connecté au réseau FROST.
|
||||||
|
9. **Node-RED** (`:1880`) : Alternative possible pour le simulateur IoT (projeté).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user