【问题标题】:IPC mechanism for IOTIOT 的 IPC 机制
【发布时间】:2018-03-17 20:23:54
【问题描述】:

我正在开发一个运行嵌入式 Linux 操作系统的物联网平台。 我正在考虑在应用程序、ZeroMQ 和 D-Bus 之间实现 IPC 的 2 个选项。
起初 ZeroMQ 似乎很合适,因为我可以用它的构建块构建确切想要的架构,但是当我读到准备好的 D-Bus 机制时,突然听起来我会用 ZeroMQ 重新发明轮子。

如果出于我的需要,选择 D-Bus 而不是 ZeroMQ 有什么缺点,请告知,我想知道您会选择什么。

我并不担心实时限制,但我确实需要系统具有可扩展性,因为应用程序的数量一直在增长,并且它们都需要相互交互。

应用程序使用阻塞和非阻塞请求响应相互交互。

谢谢。

【问题讨论】:

    标签: ipc embedded-linux zeromq iot dbus


    【解决方案1】:

    我对 D-Bus 不太了解——我对 ZMQ 比较熟悉。 ZMQ 的一个非常好的特性是它可以从进程内扩展到 IPC,再到网络 TCP,而无需更改任何源代码(只需更改连接字符串)。这对于制作分布式系统非常方便,因为只需要做很少的代码更改即可在不同的机器上重新部署软件的某些部分。它也很擅长为您管理连接/断开连接;如果两个进程之间有网络链接,ZMQ会动态连接它们。

    物联网的一个问题是许多设备必须由电池供电(门锁、散热器阀门等),因此无法维持 ZMQ 等协议所需的全时 IP 连接。这就是存在 ZWAVE、Thread 和 ZigBee 等无线电链路的原因,但使用它们更像是使用 UDP。

    【讨论】:

    • 谢谢。你熟悉只使用 ZeroMQ 作为 IPC 的非分布式系统吗?
    • @Yuval,你的意思是我知道仅在进程中使用 ZeroMQ 的软件,使用“ipc://”或“inproc://”作为线程之间通信的唯一方式吗?是的,我已经写了一些(封闭源代码),而且我相信很多其他人也写过。好消息是,如果或当系统对于单台 PC 而言变得太大时,分发它非常容易。其他严格位于单台计算机内的通信 API 无法扩展,如果扩展成为要求,有些人不希望冒未来代码重写的风险。
    • 谢谢巴扎,这有帮助。我没有任何计划将我的系统扩展到多个板上,而是使用单个板进行处理。我想我会为我的系统选择 zeroMQ。
    猜你喜欢
    • 1970-01-01
    • 2016-06-01
    • 2012-01-13
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2011-01-15
    • 2023-03-08
    相关资源
    最近更新 更多