We are plaining to 1000 edge devices in next 12 to 24 months to traffic. Each Edge device will 5 Microservice publish and subcribe to local Edge VerneMQ Broker. We would like to using MQTT bridge functionality.
Can you please let us knwo what maximum number of edge VerneMQ brokers can Bridge to a central VerneMQ Broker ?
Does bridge support bi-directional. For example same topic that publish on central VerneMQ Broker will Bridge to Edge VerneMQ brokers.
In the event of network offline and the restore Network connection from Edge device to Central on Premise. Does Edge VerneMQ brokers republish offline topics from to central VerneMQ Broker ?
Bridging is quite a complex topic, apologies that I cannot lay out all the details here. You can configure pull or push bridges and they have different behaviours. For your case, you probably want to configure pull bridges on the central broker, with clean_session disabled, so that the messages remain stored on the edge brokers if the bridge is offline.
Yes, bridges can work bi-directional.
A bridge at its core is just an MQTT consumer and publisher acting as one unit. Therefore, you can operate a relatively high number of bridges. Be aware they run in the same runtime as Verne, though, sharing resources.
The bridge is a VerneMQ Plugin and will run on the broker. So the Broker and the Plugin share memory and CPU as they run in the same Erlang VM runtime.
That’s not something to worry about, usually. I just wanted to let you know that the bridge is not an external component but a VerneMQ Plugin.
Can you please let me know the syntax of -e “DOCKER_VERNEMQ_PLUGINS__VMQ_BRIDGE__TCP__BR0=10.151.42.64:1883”
is correct ? because my VerneMQ Broker docker container will NOT run.
My translation for mq_bridge.tcp.br0 = 10.151.42.64:1883 should be
“DOCKER_VERNEMQ_VMQ_BRIDGE__TCP__BR0=10.151.42.64:1883”
I got my Edge Vernemq Brokers to bridge to central Vernemq Broker.
Can you please let me how many level Bridge I can configue?
It possible to update VerneMQ configuration file or properties at runtime?