1
0
Fork 0
mirror of https://github.com/vx-labs/mqtt-broker.git synced 2025-12-16 11:04:08 +00:00
No description
Find a file
2020-03-13 15:07:36 +01:00
adapters make health return a reason 2020-03-01 16:11:48 +01:00
cli make health return a reason 2020-03-01 16:11:48 +01:00
crdt add listener rpc 2019-07-03 18:13:04 +02:00
events stick to consul tag model 2020-02-23 19:08:21 +01:00
format fancier stream and sessions stats 2020-01-03 11:19:20 +01:00
network stick to consul tag model 2020-02-23 19:08:21 +01:00
path raft: react to api calls instead of peers events to build membership 2019-12-27 17:59:54 +01:00
services cli: add decoder support 2020-03-13 15:07:36 +01:00
stream stream: panic if consumer were removed from group 2020-03-08 16:10:08 +01:00
struct/queues/inflight remove dead code 2019-12-22 21:45:55 +01:00
terraform stick to consul tag model 2020-02-23 19:08:21 +01:00
transport broker: do not panic on nil err 2019-08-20 21:25:43 +02:00
vaultacme tls: allow any ciphers for now 2019-12-21 21:33:31 +01:00
.dockerignore rework project layout 2019-12-25 11:48:04 +01:00
.gitignore rework project layout 2019-12-25 11:48:04 +01:00
docker-compose.yml add id to services 2020-01-21 10:25:39 +01:00
Dockerfile Merge branch 'discovery' 2019-12-28 22:08:30 +01:00
go.mod add id to services 2020-01-21 10:25:39 +01:00
go.sum remove token based synchronization during raft bootstrap 2020-01-08 19:01:31 +01:00
LICENSE initial commit 2018-10-20 15:39:46 +02:00
Makefile broker: return refesh token 2020-01-08 22:37:27 +01:00
Procfile add long-poll support 2020-03-13 14:33:18 +01:00
README.md move peers in discovery adapters 2019-12-29 13:26:07 +01:00

MQTT Broker

Experiments around a gossip-based MQTT Broker. Inspired (initially) by https://emitter.io/.

Running

The broker is composed of multiple services, discovering themselves using an embed gossip-based service mesh.

Inter-service communication is based on GRPC.

The project use Goreman (https://github.com/mattn/goreman/) to run on a local development workstation.

Local

The system persists its state on disk. You may have to delete the persited state before starting the system.

Persisted state is located in the ~/.local/share/mqtt-broker folder (or /var/lib/mqtt-broker if you run the system as the root user).

You can run the broker on your workstation by running the following command.

goreman start

Wait a few seconds for raft clusters (key-value store, stream service and queues service) to bootstrap themselves.

The broker should start and listen on 0.0.0.0:1883 (tcp) and 0.0.0.0:1884 (tcp). You can connect to it using an MQTT client like mosquitto.

mosquitto_sub -t 'test' -d -q 1 &
mosquitto_pub --port 1884 -t 'test' -d -q 1 -m 'hello'