Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于高度可扩展REST Web服务实现的技术堆栈_Rest_Scalability - Fatal编程技术网

用于高度可扩展REST Web服务实现的技术堆栈

用于高度可扩展REST Web服务实现的技术堆栈,rest,scalability,Rest,Scalability,我们需要提出一个基于REST的web服务实现,从需要高度可伸缩的数据存储返回JSON。主要的设计要求是高可扩展性,因为该服务将在预定义的轮询间隔内受到数十万个客户端应用程序(C++)的影响 我们被要求提出Web服务和数据库的技术栈 最初,我们考虑将ASP.NETMVC3用于RESTAPI,将SQLServer2008用于数据库。但是客户问我们这是否具有足够的可扩展性 由于我们是一家微软集团,我们更倾向于MS技术,但我们希望不带偏见,并在这种情况下提出两个最佳方案。如果其他技术堆栈更适合处理负载和

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

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

最初,我们考虑将ASP.NETMVC3用于RESTAPI,将SQLServer2008用于数据库。但是客户问我们这是否具有足够的可扩展性

由于我们是一家微软集团,我们更倾向于MS技术,但我们希望不带偏见,并在这种情况下提出两个最佳方案。如果其他技术堆栈更适合处理负载和规模,那么我们希望将其呈现给客户,而不是试图为自己打包项目

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


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

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

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

如果是写密集型的,您可能需要某种类型的写切分-您最好使用NoSQL解决方案,如Cassandra/MongoDB等

也考虑许可费用。对于SQL Server,大多数可伸缩性功能(分区等)都是企业功能。对于MSSQL 2012,许可证是按逻辑核而不是按物理处理器。


如果这是一个问题,你可能会认真考虑MySQL而不是MSSQL。 任何成熟的web技术(.net、java、php等)都可以用来创建可伸缩的restapi。如果您的应用程序是数据密集型的,那么我会继续说,比web技术更重要的是数据存储

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

如果是写密集型的,您可能需要某种类型的写切分-您最好使用NoSQL解决方案,如Cassandra/MongoDB等

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