我知道golang在内置支持方面非常擅长并发,但在我看来它们并不是分布式的,所以框架/库允许我们在分布式环境中编写生产者/消费者应用程序.
如果您想在分布式程序中使用Go的通道概念,可以查看Go Circuit框架.
它提供了一个运行多进程程序的框架(可能分布在多台机器上),允许您使用通道在这些进程之间进行通信.
这里不需要重新发明轮子......生产者/消费者应用程序通常使用消息队列构建.
使用这种方法,您应该尝试将问题分解为小的(理想情况下是幂等的)任务,构建可以排队这些任务的应用程序,然后使用另一个可以使这些任务出列并执行它们的工作程序.扩展很简单:只需添加更多工作人员.
那里有很多排队解决方案,对于一个用Go写的非常好的解决方案来看看NSQ.
迟了两年,但如果有人在找。 https://github.com/AsynkronIT/gam
GAM(Go演员模型)既支持Akka这样的演员,也支持Orleans这样的Virtual Grains。Protobuf代码生成支持像虚拟谷物这样的奥尔良女士,为您提供键入的消息和键入的谷物类型。参见 https://github.com/AsynkronIT/gam/blob/dev/examples/cluster/member/main.go https://github.com/AsynkronIT/gam/blob/dev/examples/cluster/shared/protos。原型
它的速度也非常快,每秒有100万以上的远程消息。