【问题标题】:Technology stack for Highly Scalable REST Web Service implementation用于高度可扩展的 REST Web 服务实施的技术堆栈
【发布时间】:2012-09-10 09:25:55
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: rest scalability


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2016-11-11
      • 1970-01-01
      • 2011-02-03
      • 2015-03-21
      • 1970-01-01
      • 2014-09-06
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多