I am working on designing a dynamic system that contains some edge devices lets say 100 for the moment out of which one device has to be the master, that has some different task.
So I have searched a google a lot, and got some useful tools and algorithm but they have some cons in accordance to the system I am designing. Like taking example of Zookeeper, the issue is you have to define the hard-coded IP address in zoo.cfg file. I can define that, but what if device got reboot and IP got change? So to overcome this I am planning to implement below:
So I have following doubts:
Is there any ready made tool/software/approach available that can do the same work in a better (fast, less complex, less overhead on system etc.) way?
Overall problem @romkey
Although I think the overall problem doesn't have any link with this so I have not shared before, but as requested I am sharing: system have 10+edge and 100+UC that t/f data over MQTT. I do not want to hard code the MQTT broker IP in each UC(so that if edge gets down, it will connect to different edge). On powered up UC listen to a UDP message which is t/f by master, that message has IP of master, then connect to master MQTT broker and requested for edge IP. Master response back with edge IP over MQTT. Then UC connect to edge MQTT broker and continues work.
So for above this we need a master among all edge. They don't know the IP of each other.
If you have some approach please share.
Edit 1:
What kind of network technology do you have between all those devices? Wired, wireless? Peer-to-peer, mesh? Do they all hear all others (single broadcast domain)? Do you have bandwidth or energy constraints? Is it possible the network becomes split? Is there communication to the outside? Shouldn't the master MQTT broker be outside ("in the cloud")?
- All UC and edge devices are on same network(wireless & Intranet). Master device allocate the edges to micro-controller on load balancing algorithm.
- Yes they all listening to over broadcast IP, same port.
- No energy constraint.
- By split if you mean two different n/w, then no.
- No, we required a solution that works without depending on network. We can't expose such a large number of micro-controller to internet. So MQTT broker is running locally on each edge.
