流水线或以其他方式在语言之间实时传输数据

Pipelining or Otherwise Transferring Data Between Languages in Realtime

我正在做一个项目,我不能随意讨论核心,但我遇到了绊脚石。我需要将数据从 C++ 实时传输到其他语言,最好是 Java 或 Python(延迟约 10 毫秒)。

我们有一个传感器, 需要用 C++ 解析。我们打算通过蓝牙做一个数据read/output,最有可能的是Java或者C#(我不太了解C#,但它看起来类似于Java)。 C++ 不符合要求,因为我觉得它不够先进,无法满足我们的需要。传感器解析已经完成。数据传输将在同一台机器上进行。

以下是我思考过的方法:

我试图查找它,但结果中没有任何用处。

您似乎在寻找 IPC(进程间通信)。最容易实现的是套接字和管道。我添加了链接,可帮助您决定使用哪一个。我已经实现了命名管道和套接字以每 1 毫秒传输一次数据。我在 python、c 和 pascal 中完成了这些实现。

Here is the descriptions of all the IPC types

What's the difference between pipes and sockets

我们遇到了同样的问题,我们必须在一个 Java 应用程序与其他多个应用程序之间共享传感器数据,包括 Java、Python 和 R.

首先我们尝试了套接字连接,但套接字通信不是容错的。一个应用程序的重新启动或失败会影响其他应用程序。 然后我们尝试了它们之间的 RMI 调用,但由于可伸缩性,我们再次不满意。

我们希望系统可靠、可扩展、分布式和容错。所以,最后我们开始使用 RabbitMQ,我们创建了一个生产者和多个消费者。它工作了 2 年。您可以考虑使用 Apache Kafka。

根据您现在和不久的将来的系统要求,您可以选择 Socket 管道、RMI 调用、RabbitMQ、Kafka、Redis 等选项。