一定要开两个进程吗

来源:9-7 编码实战: 实现异步转移的MQ消费者

午夜包子铺

2020-06-09

实例中你起了两个main函数分别用于生产者和消费者,可不可以把在生产者(原来上传文件的main函数)的main函数中添加一个goroutine用作消费队列呢?因为想到在实际部署中,如果有两个main函数是不是就意味着要部署两个server到云服务器上,还要配置docker容器之间通信之类的?

写回答

1回答

xiaomo

2020-06-10

同学你好,通过goroutine实现一个进程即作为生产者也作为消费者是没有问题的。在测试环境下可以这么做,不过为了更好的划分功能模块,以及提高上传效率(上传节点和文件转移节点进行隔离,通过异步来减少互相影响,上传节点只做上传,快速响应用户请求),还是建议将这两部分功能分离出来独立部署。隔离部署的话,的确意味着有两个server在上面运行;目前这两者之间没有直接通讯,是通过rabbitMQ来做异步通讯的。

1
1
午夜包子铺
非常感谢!
2020-06-10
共1条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程