Prodotto
Esplora l’architettura di riferimento e le funzionalità avanzate di Waterstream per l’IoT su larga scala
I messaggi MQTT in arrivo dai client e client-state vengono salvati direttamente in Kafka senza archiviazione intermedia.
Waterstream può leggere i record dai topic di Kafka ed eventualmente inviarli ai clienti tramite MQTT o Websocket.
Ogni nodo Waterstream è stateless perché tutto viene memorizzato in Kafka. Questo permette bassa latenza ed eccellente scalabilità.
Uno scenario tipico richiede il deployment di più istanze di Waterstream, chiamate anche nodi, per garantire tolleranza agli errori e scalabilità. I nodi Waterstream non memorizzano alcuna informazione – tutto è archiviato in Kafka – quindi possono essere aggiunti o rimossi dinamicamente in base al carico. È necessario un load balancer tra i client MQTT e i nodi Waterstream per distribuire il traffico di rete.
Waterstream memorizza i messaggi MQTT in arrivo nei topic Kafka configurati. Una volta in Kafka, i dati possono essere consumati da qualsiasi client Kafka, come le applicazioni Kafka Consumer, Kafka Connect e Kafka Streams. I producer Kafka possono inviare a loro volta messaggi ai client MQTT scrivendo sui topic Kafka designati.
Waterstream offre observability integrata attraverso Prometheus e Grafana; è possibile aggiungere metriche personalizzate attraverso un sistema di plugin.
Waterstream scala in modo lineare. Per la maggior parte delle operazioni, i suoi nodi non dipendono l’uno dall’altro e altri nodi possono essere aggiunti per supportare un numero crescente di client.
Sono stati eseguiti diversi test di scalabilità per verificare e mettere a punto le prestazioni di Waterstream. Come mostrato nel grafico, Waterstream è stato in grado di gestire più di un milione di dispositivi connessi, utilizzando solo 12 nodi con modesta potenza di calcolo (2 CPU, 7,5 GB di RAM).
Waterstream consente un’integrazione trasparente e bidirezionale tra i client MQTT e Kafka, permettendo ai dati raccolti tramite MQTT di essere utilizzati, elaborati e distribuiti da Kafka utilizzando strumenti di streaming (ad esempio Apache Flink, Kafka Streams). Allo stesso tempo, può fornire ai client MQTT i dati provenienti da Kafka.
Non sono richieste dipendenze aggiuntive oltre a Kafka, semplificando così il processo di implementazione e integrazione. Ciò riduce la complessità operativa e facilita la manutenzione.
Waterstream è un’applicazione stateless, facilmente scalabile e resistente ai guasti. Può essere distribuita su più istanze dietro un load balancer, garantendo un’elevata disponibilità e il supporto per milioni di client MQTT.
Waterstream non è legato a un unico fornitore di servizi cloud, rendendolo adatto a scenari multi-cloud e ibridi. Ciò offre una maggiore flessibilità alle aziende che operano in ambienti cloud diversificati.
Grazie al protocollo MQTT, è ideale per scenari in cui i clienti operano su reti instabili o con connessione intermittente, garantendo comunque un accesso affidabile ai dati su Kafka.
Integrando Kafka, Waterstream aggiunge funzionalità avanzate come il rewind (possibilità di tornare indietro nella cronologia dei messaggi) e la convalida dei messaggi tramite lo Schema Registry di Kafka.
Supporta MQTT su WebSocket, consentendo lo streaming dei dati da Kafka direttamente ai client web tramite il browser, ampliando ulteriormente il potenziale dell’applicazione.
Waterstream può funzionare come bridge per un broker MQTT esistente, trasferendo solo un sottoinsieme di argomenti a Kafka, consentendo un’integrazione graduale e flessibile.
Waterstream implementa completamente le specifiche delle versioni 3.1 e 5 del protocollo MQTT, garantendo la piena compatibilità con le applicazioni che utilizzano questi standard.
Waterstream viene distribuito come immagine Docker (x86/ARM64) con requisiti minimi di RAM e CPU. Waterstream può essere distribuito at the edge, on-prem e in cloud come processo autonomo o all’interno di un cluster Kubernetes. Per saperne di più, consulta la nostra documentazione.
Per funzionare, Waterstream richiede Apache Kafka 1.1.0 o superiore. È supportato da diverse distribuzioni di Kafka, come Confluent Cloud o IBM Event Stream. Waterstream è un’integrazione verificata da Confluent che soddisfa i requisiti standard di qualità e compatibilità con Confluent Cloud.
Waterstream funziona anche con implementazioni alternative del protocollo Kafka come Redpanda.
Richiedi una demo o parla con il nostro team tecnico per maggiori informazioni.