我有一些用 Python 编写的分析代码。目前我正在使用 Storm 来处理流。因为 Storm 允许使用消息序列化调用 Python 代码,所以我在我的 Storm bolt 中从 Java/Scala 调用 Python 代码。
我找到了 Pykka这是 actor 模型的 Python 实现。我想知道是否有办法从 Akka Actor 调用 Python 代码?例如,是否可以将消息从 Akka Actor 传递给 Pykka Actor ?
最佳答案
我怀疑两个远程参与者模型实现的有线协议(protocol)是否可以轻松桥接,但您可以使用 0MQ在 Scala 代码和 Python 应用程序之间。 Akka 允许 message passing over 0MQ ,所以在一些设置之后,Scala 代码可以像处理任何其他参与者一样处理 Python 应用程序,尽管我不确定这对 Python 端意味着什么。
另一种值得考虑的可能性是使用 Jython 在 JVM 上运行 Python 分析代码。 .您可以让 Scala 参与者调用 Jython 函数/方法。但是,如果您的 Python 代码使用 C 扩展模块,您就必须寻找替代方案。
另一种可能性(也假设您没有使用 C 扩展模块)是给转换器 py2scala试一试;对于数据分析代码,它可能做得不错。据推测,这将为您提供最高效的解决方案。
关于python - 使用 Akka actor 调用或将消息传递给 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800795/