【发布时间】:2020-02-14 06:32:08
【问题描述】:
假设我有四个应用程序:
- http-网关
- NATS
- 业务逻辑客户端
- 业务逻辑服务器
Gateway <--> NATS <---> B.L.
我的项目结构如下:
nats-cluster\
cmd\
gateway\gatway.go
blclient\blclient.go
blserver\blserver.go
gateway\
blclient\
blserver\
目前,我必须分别运行其中四个,然后它们才能相互交谈。
网关和 BLclient 使用request-reply 模式,而blclient 使用grpc 与blserver 交换消息。
我想知道是否有任何方法可以在 Go 中生成单个二进制文件,以便应用程序可以通过单个二进制文件运行。
有没有办法在 Go 中将多个应用程序二进制文件合并为一个?
【问题讨论】:
-
合并成一个二进制文件是什么意思?提取其他二进制文件的二进制文件、部署包、启动脚本?您想解决什么业务需求?
-
所以你有四个独立的应用程序,它们通过一些 IPC(管道或其他东西)相互通信.. ??我不认为你可以将你的 exe 合并到一个 exe 中..
-
高效的做法是:摆脱单个组件并重构为一个整体。如果那是你想要的。
-
然后将它们捆绑在一起也没有意义。
-
作为@Volker,唯一可能的方法是将代码组合起来并将它们构建成一个二进制文件。我认为不可能采用单独的二进制文件 -> 组合 'em -> 并将它们作为单独的组件运行。
标签: go executable grpc nats.io