我正在设计一个包含一些边缘设备的动态系统,暂时可以说 100 个,其中一个设备必须是主设备,它有一些不同的任务。
所以我在谷歌上搜索了很多,并得到了一些有用的工具和算法,但根据我正在设计的系统,它们有一些缺点。以Zookeeper为例,问题是你必须在zoo.cfg文件中定义硬编码的IP地址。我可以定义它,但是如果设备重新启动并且 IP 发生变化怎么办?因此,为了克服这个问题,我计划在下面实施:
所以我有以下疑问:
是否有任何现成的工具/软件/方法可以以更好(快速、更简单、系统开销更少等)的方式完成相同的工作?
整体问题@romkey
虽然我认为整体问题与此没有任何联系,所以我之前没有分享过,但根据要求我分享:系统有 10+edge 和 100+UC t/f 数据通过 MQTT。我不想在每个 UC 中对 MQTT 代理 IP 进行硬编码(这样如果边缘出现故障,它将连接到不同的边缘)。在通电的 UC 上侦听由 master 发送的 UDP 消息,该消息具有 master 的 IP,然后连接到 master MQTT 代理并请求边缘 IP。通过 MQTT 使用边缘 IP 返回主响应。然后 UC 连接到边缘 MQTT 代理并继续工作。
因此,在此之上,我们需要所有边缘的主人。他们不知道对方的IP。
如果您有一些方法,请分享。
编辑1:
你在所有这些设备之间使用什么样的网络技术?有线,无线?点对点,网状?他们是否都听到了所有其他人的声音(单一广播域)?您有带宽或能量限制吗?网络有没有可能分裂?与外界有联系吗?主 MQTT 代理不应该在外面(“在云中”)吗?
- 所有 UC 和边缘设备都在同一网络(无线和内联网)上。主设备根据负载平衡算法将边缘分配给微控制器。
 - 是的,他们都通过广播 IP 收听,同一个端口。
 - 没有能量限制。
 - 如果您的意思是两个不同的 n/w,则拆分,则不。
 - 不,我们需要一个不依赖网络的解决方案。我们不能将如此大量的微控制器暴露在互联网上。因此 MQTT 代理在每个边缘本地运行。
 
