我在.NET C#中基于TCP开发了一个套接字应用程序,它允许许多客户端通过我正在使用的VPS相互发送文件。大多数文件传输将发生在同一地区的人之间,比如说,即使是在同一个社区。
所以,如果有300个客户连接起来,其中一些来自欧洲,另一些来自美国等.那些从欧洲连接起来的人永远不会试图把文件发送给那些在美国的人。
对我来说,最重要的是可伸缩性(希望有成千上万的用户同时连接),以及在上传/下载传输速率方面的低延迟(响应性)。
有一点告诉我,如果我想让文件(最多2MB)在我的客户之间快速传输,我应该在欧洲、美国、亚洲等地获得一个VPS。这样,用户将获得更高的传输速率,如果其中一个服务器出现故障,他们将能够使用另一个服务器(S)。此外,我应该有一个单独的数据库的用户信息/统计,所有的服务器连接到需要时。
我的问题是,这种使用和要求的普遍做法是什么?任何我应该开始熟悉的线索/术语都会受到高度赞赏。谢谢
发布于 2013-03-19 11:30:50
这种问题的最佳实践是只将您的服务器更改为元服务器,而文件传输将是对等的。例如,这就是Skype的工作方式。
如果不想重写整个应用程序逻辑,可以使用CDN。请记住,许多CDN都是为静态内容设计的。确保使用一个,这实际上适用于动态内容。亚马逊的CloudFront就是一个例子,CloudFlare CDN就是另一个例子。在这种情况下,客户端将上传和下载到各自的CDN端点(最近的CDN端点),然后通过内部CDN提供商的网络到您的服务器。与自动可伸缩服务器相结合,您将实现几乎无限的可伸缩性。然而,这将是相当昂贵的。
https://softwareengineering.stackexchange.com/questions/191141
复制相似问题