我想为~500个活跃用户(一次会话)开发应用程序。系统不会处理任何大规模的计算。它将是对数据库解决方案的简单读/写。但是,应用程序每个用户每天上传大约50mb的数据。 (每当非用户活跃时,它将被其他应用程序分析和清理)。实际上,我正在设计这个应用程序,但我对此几乎没有任何疑问。
我很高兴有关设计此中型应用程序的任何帮助和/或文章。
答案 0 :(得分:2)
这取决于您的NFR(非功能要求)。在负载平衡旁边,集群提供更高的可用性。
您必须使您的后端无状态,以便来自同一用户的请求可以在另一个节点上结束而用户不会注意到。这使得构建缩放软件成本更高。因此,请仔细考虑您的选择。
从多个服务器访问数据库与从多个线程访问数据库没有什么不同。
答案 1 :(得分:0)
要回答您的第一个问题,我认为使用基础设施提供商可以轻松扩展(上调或下调)您的应用程序,这一直是一个很大的优势,可以帮助您节省资金。我对这类提供商的主要体验是亚马逊网络服务(AWS)。
我不确切地知道您打算使用哪种技术,但像AWS这样的常规设置对我来说是有道理的:
(我自愿使用AWS名称,以便您感兴趣时可以阅读文档。)
如果需要,这基本上可以让你扩展到超过500个并发用户,并且当你处理较少的用户时可以节省一些钱。请注意,也可以安排自动缩放组。例如:«我希望白天至少有5个实例(最多50个),但是你可以在凌晨1点到凌晨4点之间下降到2个(最多50个)»
我提到的服务有很多文档记录,所以如果您想了解更具体的细节,可以查阅。
我不会详细讨论你的另外两个问题,因为我不是这方面的专家,但数据库确实可能成为一个瓶颈,因为它可能涉及很多I / O.
希望这会有所帮助:)