【发布时间】:2018-05-05 16:40:27
【问题描述】:
我们的项目中有一个 Java 应用程序,我们想要调用一些 Python 脚本并从中返回结果。最好的方法是什么?
我们希望隔离 Python 执行以避免影响 Java 应用程序。可能,Dockerizing Python 是最好的解决方案。我不知道还有什么办法。
那么,一个问题是如何从Java中调用它。
据我了解有几种方法:
在 Docker 中启动一些网络服务器,该服务器接受来自 Java App 的 REST 调用并运行 Python 脚本并通过 REST 将结果返回给 Java。
以某种方式通过 Docker CLI 处理请求和响应。
使用 Java Docker API 向 Docker 发送 REST 请求,然后由 Docker 转换为 Docker 内部 Python 脚本的 Stdin/Stdout。
在 Docker 中运行的 Java App 与 Python 连接最有效、最正确的方法是什么?
【问题讨论】:
-
我认为在python中公开一个rest api并从java调用rest api会更好,因为不会有任何外部依赖(docker apis)。您以后可以从任何地方调用 rest api,而不仅仅是从 java 以备不时之需。
-
python 和 java 代码之间需要多少隔离?
-
虽然您可以使用 REST,但我可能会建议一个可以为两种语言生成方法和客户端的 RPC 框架
-
jrtapsell,我不希望 Python 代码能够影响 Java App。在 CPU、RAM、文件系统访问方面,我的设置这两个部分应该是独立的。
-
肯定会同意使用 RPC 进行跨语言 API 调用。