如何连接分布式 Go 应用程序?
Posted
技术标签:
【中文标题】如何连接分布式 Go 应用程序?【英文标题】:How to connect distributed Go apps? 【发布时间】:2017-01-23 15:55:22 【问题描述】:我有两个 Go 应用程序在不同的机器上运行。 我希望他们以原生快速的方式相互交流。
我怎样才能做得更好?我使用 Erlang 并发现它在那里的实现方式非常方便。
Go 应用程序之间的首选通信方式是什么?
【问题讨论】:
你可以使用像 RabbitMQ 这样的队列。 Google 还发布了一个名为 gRPC 的项目,您可能会喜欢。 "net/rpc","net/rpc/jsonrpc",gRPC,纯 HTTP,通过消息队列异步,任你选择。 您可以创建简单的 api 用于在您的应用程序之间进行对话。 【参考方案1】:net/rpc - 开箱即用且快速
gRPC - 快速且通用(imo 是要走的路)
net/rpc/jsonrpc - 当您需要人类可读的消息或想要集成时很好 使用客户端 js 代码
plain HTTP - go 程序之间的通信过度杀伤力,您必须自己计划路由和数据编码,这是不必要的努力
消息队列 - 有点慢的方法,但您可以从它们提供的高级路由和持久性中受益
【讨论】:
以上是关于如何连接分布式 Go 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章