【问题标题】:How to connect distributed Go apps?如何连接分布式 Go 应用程序?
【发布时间】:2017-01-23 15:55:22
【问题描述】:

我有两个 Go 应用程序在不同的机器上运行。 我希望他们以原生快速的方式相互交流。

我怎样才能做得更好?我使用 Erlang 并发现它在那里的实现方式非常方便。

Go 应用程序之间的首选通信方式是什么?

【问题讨论】:

  • 你可以使用像 RabbitMQ 这样的队列。 Google 还发布了一个名为 gRPC 的项目,您可能会喜欢。
  • "net/rpc""net/rpc/jsonrpc"gRPC,纯 HTTP,通过消息队列异步,任你选择。
  • 您可以创建简单的 api 用于在您的应用程序之间进行对话。

标签: go distributed


【解决方案1】:

net/rpc - 开箱即用且快速

gRPC - 快速且通用(imo 是要走的路)

net/rpc/jsonrpc - 当您需要人类可读的消息或想要集成时很好 使用客户端 js 代码

plain HTTP - go 程序之间的通信过度杀伤力,您必须自己计划路由和数据编码,这是不必要的努力

消息队列 - 有点慢的方法,但您可以从它们提供的高级路由和持久性中受益

【讨论】:

    猜你喜欢
    • 2013-02-04
    • 2013-03-03
    • 2011-08-10
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多