长话短说,我有一个 Java 进程,可以从进程读取数据和向进程写入数据。我有一个 C++ 程序,它获取数据,对其进行处理,然后需要将其传递回 Java,以便 Java 可以将其写入数据库。
Java 程序从 Hadoop 中提取数据,因此一旦 Hadoop 进程启动,它就会被数据淹没,但实际处理(由 C++ 程序完成)无法一次处理所有数据。所以我也需要一种控制流量的方法。同样为了使问题复杂化(但简化我的工作),我做 Java 的东西,我的朋友做 C++ 的东西,并试图让我们的程序尽可能独立。
那就是问题所在。我发现Google协议缓冲区,在程序之间传递数据似乎很酷,但我不确定Java程序保存数据如何触发c++程序处理,然后当c++程序保存结果时,Java程序将如何被触发保存结果(这是针对一条或几条记录,但我们计划处理数十亿条记录)。
解决这个问题的最佳方法是什么?有没有一种简单的方法可以做到这一点?