出于某种原因,我必须使用go作为我的新Web项目的后端语言.
但是,我们将使用的一些apis是用Java编写的,并打包在.jar文件中.
我是新手,如何使用go以一致的方式与Java合作,当HTTP请求到来时,go将处理它并将一些函数委托给java,然后返回响应.
Dan*_*iel 12
您的Java暴露了什么样的API?
如果它暴露了RPC API,您可以使用Go的json-rpc模块.
如果它公开RESTful API,您可以使用Go的http模块.
您还可以生成子进程(您的Java代码)并通过stdin和stdout管道与它进行通信.你可以使用exec模块.
这不是一个详尽的沟通清单,只是前三个想到的.您还可以使用XML API,共享内存或命名管道.
此外,像您正在寻找的消息队列,如0mq.0mq处理IPC的许多棘手的部分,例如,如果接收器过载,消息成帧以及失败后重新连接,则使发送者退回发送请求.
您可以通过多种方式在Java代码和Go代码之间进行通信.我认为最终通过HTTP API最常见也很简单.在Java服务器中公开RESTful或RPC API,将其作为HTTP API服务运行,编写Go以处理传入的HTTP请求,然后从Go连接Java API以帮助创建响应.