出于某种原因,我必须使用 go 作为我的新 Web 项目的后端语言。
但是,我们将使用的一些 api 是用 Java 编写并打包在 .jar 文件中的。
我是go新手,如何使用go与Java以一致的方式配合,当HTTP请求到来时,go会处理它并将一些函数委托(delegate)给java,然后返回响应。
最佳答案
您的 Java 公开了什么样的 API?
如果它公开了一个 RPC API,你可以使用 Go's json-rpc module .
如果它公开了一个 RESTful API,您可以使用 Go's http module.
您还可以生成一个子进程(您的 java 代码)并通过 stdin 和 stdout 管道与其对话。你会使用 exec module为此。
这不是一个详尽的沟通 list ,只是想到的前三个。您还可以使用 XML API、共享内存或命名管道。
另外,像 0mq 这样的消息队列可能是你正在寻找的。 0mq 处理了 IPC 的许多棘手问题,例如在接收方过载时让发送方停止发送请求、消息成帧以及在失败后重新连接。
您可以通过多种方式在 Java 代码和 Go 代码之间进行通信。我认为最终通过 HTTP API 这样做是最常见和最简单的。在 Java 服务器中公开 RESTful 或 RPC API,将其作为 HTTP API 服务运行,编写 Go 来处理传入的 HTTP 请求,然后从 Go 连接 Java API 以协助创建响应。
关于java - 如何在 go 中使用 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048699/