feat: Pulsar distribution service (Simulator → Pulsar → Brokers)

- Fix Pulsar: use binary client (port 6650) instead of non-existent REST /produce API
- Add pulsar-client to Dockerfile
- Create pulsar/distribution.py: consumes Pulsar and republishes to MQTT (EMQX/Mosquitto), NGSI-LD (Orion/Stellio), FROST
- Add docker-compose.distribution.yml for the distribution service
- Tested: Messages successfully distributed to EMQX and Orion-LD
- Update session resume
This commit is contained in:
Eric FELIXINE
2026-05-05 10:20:13 -04:00
parent 5ddde3e013
commit ad613beefb
11 changed files with 444 additions and 20 deletions

View File

@@ -0,0 +1,30 @@
# Pulsar Distribution Service — Smart City Digital Twin Martinique
# Consumes from Pulsar and republishes to MQTT/FIWARE brokers
# Usage: docker compose -f docker-compose.yml -f docker-compose.distribution.yml up -d
services:
pulsar-distribution:
build:
context: ./pulsar
dockerfile: Dockerfile
container_name: smart-city-pulsar-distribution
networks:
- smartcity-shared
- traefik-public
environment:
- PULSAR_HOST=smart-city-pulsar
- PULSAR_PORT=6650
- EMQX_HOST=emqx_emqx_1
- MOSQUITTO_HOST=mosquitto-traefik
- ORION_URL=http://fiware-gis-quickstart-orion-1:1026
- STELLIO_URL=http://stellio-api-gateway:8080
- FROST_URL=http://frost-api-8090:8080/FROST-Server/v1.1
restart: unless-stopped
labels:
- "traefik.enable=false"
networks:
traefik-public:
external: true
smartcity-shared:
external: true