0

我们需要提出一个基于 REST 的 Web 服务实现,该实现从需要高度可扩展的数据存储中返回 JSON。主要的设计要求是高可扩展性,因为该服务将在预定义的轮询间隔内受到数十万个客户端应用程序 (C++) 的影响。

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

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

由于我们是 Microsoft 团队,因此我们更倾向于 MS 技术,但我们希望不偏不倚,并提出一些最适合这种情况的方案。如果其他一些技术堆栈更适合处理负载和规模,那么我们希望将其展示给客户,而不是试图为自己打包项目。

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

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

4

1 回答 1

4

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

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

如果它的写入密集,您可能需要某种写入分片 - 您可能最好使用 NoSQL 解决方案,如 Cassandra/MongoDB 等。

还要考虑许可成本。对于 SQL Server,大多数可伸缩性功能(分区等)都是企业功能。对于 MSSQL 2012,许可证是按逻辑内核而不是按物理处理器的。如果这是一个问题,您可能会认真考虑 MySQL 而不是 MSSQL。

于 2012-10-21T20:11:45.380 回答