我正在开发一个物联网平台,运行嵌入式Linux操作系统。我正在考虑在应用程序之间实现进程间通信的两种选择,ZeroMQ和D-Bus。
乍一看,ZeroMQ似乎很适合,因为我可以用它的构建块构建所需的体系结构,但是当我读到ready D-Bus机制时,突然听起来我要用ZeroMQ重新发明轮子。
请告诉我,如果选择D-Bus而不是ZeroMQ有任何缺点,我想知道你会选择什么。
我对实时限制并不苛刻,但我确实需要系统随着应用程序数量的增长而变得可伸缩,它们都需要相互交互。
应用程序之间使用阻塞和非阻塞请求-响应进行交互。
谢谢。
发布于 2018-03-18 15:58:58
我对D-Bus了解不多--我更熟悉ZMQ。ZMQ的一个非常好的特性是,它可以从进程内扩展到IPC,再扩展到网络TCP,而无需更改任何源代码(只需更改连接字符串)。这对于制作分布式系统非常方便,因为在不同的机器上重新部署软件的部分只需要做很少的代码更改。它还可以很好地为您管理连接/断开连接;如果两个进程之间存在网络链接,ZMQ将动态地连接它们。
物联网的一个问题是,许多设备必须由电池供电(门锁、散热器阀门等),因此无法支持ZMQ等协议所需的全天候IP连接。这就是为什么存在像ZWAVE、线程和ZigBee这样的无线电链接,但使用它们更像是使用UDP。
https://stackoverflow.com/questions/49341557
复制相似问题