go - 我应该使用哪种协议(protocol)在多个节点之间交换文件?

标签 go distributed-computing distributed-system file-sharing system-design

我有多个节点。 Node 只是一个 linux 或 windows 服务器。我也有一个主节点。主节点是文件共享进程的管理者。

这张图片展示了沟通的过程: enter image description here

所以,我尝试为这个系统选择一些我可以实现的协议(protocol)(或者只是使用一些现有的实现)。我需要一个文件共享协议(protocol)。我的意思是检查校验和、管理互联网带宽、管理数据交换过程。

文件只是一种二进制数据。文件大小约为 1-10 MB。系统中的文件数量约为 100 万个。 90% 的请求是写入请求。

最佳答案

Web 服务器旨在提供文件服务(以及其他服务)。

我建议你使用 http 协议(protocol)并使用 https://golang.org/pkg/net/http/#FileServer只需几行代码即可设置。

如果您需要安全传输,请使用 https,也可用于 FileServer:https://golang.org/pkg/net/http/#ListenAndServeTLS

关于go - 我应该使用哪种协议(protocol)在多个节点之间交换文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50788473/

相关文章:

go - 在 Golang 中如何判断两个证书对是由不同的 CA 颁发的?

go - RabbitMQ 发布/订阅实现不工作

go - 处理多个网络客户端

apache-spark - Spark 独立设置中的内存使用情况

go - 由于错误 : could not attach to pid XXX: could not open debug info,无法调试 golang 应用程序 delve

redis - Celery、zmq、分布式系统的消息传递方法

javascript - 不同语言生成的simpleflake id是否一致?

networking - 分布式应用程序 - 负载均衡器是单点故障吗?

c++ - 在 for 循环中使用 MPI_Irecv 和 MPI_Isend

hadoop - 如何以最少的停机时间/无停机时间将非HA HDFS群集重新配置为HA?