我们需要提出一个基于REST的Web服务实现,从需要高度可伸缩的Data Store返回JSON。主要设计要求是高可伸缩性,因为该服务将以预定义的轮询间隔受到数十万个客户端应用程序(C ++)的攻击。</ p>
我们被要求为Web服务和数据库提出技术堆栈。
最初我们考虑过用于REST API的ASP.NET MVC 3和用于数据库的SQL Server 2008。但客户问我们这是否足够可扩展。
由于我们是微软集团,我们更倾向于MS技术,但我们希望在这种情况下不偏不倚并提出几个最佳选择。如果其他技术堆栈更适合处理负载和规模,那么我们希望将其呈现给客户端,而不是试图为自己包装项目。
我们只是不确定如何进行比较,因为有太多框架和可用技术来实现REST。我们还试图弄清楚基于NoSQL的解决方案是否有助于扩展,因为没有真正的理由使用关系数据模型,因为数据库只是用作数据存储。
是否有任何机构对最适合处理上述要求的技术选择有任何建议。
答案 0 :(得分:4)
任何成熟的Web技术(.net,java,php等)都可用于创建可扩展的REST API。如果您的应用程序是数据密集型的,那么我会继续说除了Web技术之外,更重要的是数据存储。
要决定数据存储,首先应检查应用程序是读密集型还是密集型。如果它的读取密集,带有缓存解决方案(EhCache,Memcache等)的RDBMS应该可以很好地为您服务。
如果它的写入密集,你可能想要某种写分片 - 你可能最好使用像Cassandra / MongoDB等NoSQL解决方案。
还要考虑许可费用。使用SQL Server,大多数可伸缩性功能(分区等)都是Enterprise功能。对于MSSQL 2012,许可证是每个逻辑核心而不是每个物理处理器。 如果这是一个问题,您可能会非常想要考虑MySQL而不是MSSQL。