2012-09-18 42 views
0

我们需要提出一个基于REST的Web服务实现,该实现从需要高度伸缩的Data Store返回JSON。主要设计要求是高度可扩展性,因为该服务将以预定义的轮询间隔受到数十万个客户端应用程序(C++)的打击。实现高度可扩展的REST Web服务实现的技术栈

我们被要求提出Web服务和数据库的技术栈。

最初我们考虑了有关数据库的REST API和SQL Server 2008的ASP.NET MVC 3。但客户问我们这是否足够可扩展。

由于我们是微软集团,我们更倾向于MS技术,但我们希望不偏不倚,并在这种情况下提出一些最佳解决方案。如果其他一些技术栈更适合处理负载和规模,那么我们希望向客户展示这些技术栈,而不是试图为自己收集项目。

由于有太多的框架和可用的技术来实现REST,所以我们不确定如何进行比较。我们还试图弄清楚基于NoSQL的解决方案是否有助于可伸缩性,因为没有真正的理由使用关系数据模型,因为数据库将仅用作数据存储。

有没有任何机构对最适合处理上述要求的技术的选择有任何建议。

回答

4

任何成熟的网络技术(.net,java,php等)都可以用来创建可扩展的REST api。如果你的应用程序是数据密集型的,那么我会继续说,除了网络技术之外,更重要的是数据存储。

要决定数据存储区,您应该首先检查应用程序是读取密集型还是写入密集型。如果它的读取密集,带有缓存解决方案(EhCache,Memcache等)的RDBMS应该很好地为您服务。

如果写密集型的,则可能需要某种形式的写拆分的 - 你可以使用的NoSQL解决方案与卡桑德拉/ MongoDB的等

也可以考虑授权费用会更好。使用SQL Server的大部分可扩展性功能(分区等)都是企业功能。使用MSSQL 2012,许可证是每个逻辑核心而不是每个物理处理器。 如果这是一个问题,你可能会认真考虑MySQL而不是MSSQL。