/mqtt-elasticsearch-forwarding

Example projects demonstrating how to forward incoming MQTT payloads to an ElasticSearch instance in various languages.

Primary LanguageJavaApache License 2.0Apache-2.0

MQTT to ElasticSearch Forwarder

This represents a collection of applications in various languages which do the same thing: Forward incoming messages from an MQTT broker to an ElasticSearch instance.

The point is trying to determine:

  • How easy is it to implement in a given language
  • How well does the solution perform under load

Docker

The infrastructure components (MQTT broker, ES instance, application) are always deployed and run in docker containers. To this end, each project provides a docker-compose.yml which can be used to start the scenario with docker-compose up -d (for example) and then you can track the progress with docker-compose logs -f.

Scaling the producer to increase load

You can start multiple producer containers in order to increase the number of messages being sent to the MQTT broker by using:

docker-compose scale producer=5

It's best to chain the commands when starting the scenario, e.g.:

docker-compose up -d ; docker-compose scale producer=5 ; docker-compose logs -f watchdog

Groovy

See the Groovy subproject.

Python

See the Python subproject.

JEE / Payara Micro

See the Payara Micro subproject.

Spring Boot

See the Spring Boot subproject.

Node.js

See the Node.js subproject.

Producer

See the producer subproject.

Watchdog

See the watchdog subproject.