MongoDB on Azure worker角色

时间:2015-09-25 11:47:15

标签: entity-framework mongodb azure azure-worker-roles

我使用SignalR开发一个应用程序来管理websockets并允许我的客户端相互对话。

我打算在Azure工作人员角色上托管这个后台办公室。由于我的SignalR请求携带大部分时间保存在数据库中的数据,我想知道NoSQL的MongoDB而不是传统的SQL Server / Entity Framework对应该是一个好方法。

假设我的应用程序的数据类型将是大多数的字符串,我认为MongoDB将是一个可靠且高性能的解决方案,它将允许我摆脱Azure的SQL数据库成本。

有关信息,Azure辅助角色将在具有以下硬件的计算机上运行:1核CPU,3.5GB RAM和50GB SSD存储。

你认为我在这个架构上有一个良好的开端吗?

由于

2 个答案:

答案 0 :(得分:2)

  

您认为我在这个架构上有一个良好的开端吗?

总之,没有。

用户询问了关于在工作者角色上运行Redis的类似问题 - Setting up Redis on Azure cloud service worker role - 该问答的所有内容都与MongoDb上下文相关。

我建议您阅读我的答案,因为它会更详细,但作为一个错误的架构方法的概述:

  1. 您无法保证Azure Service Fabric何时重新启动辅助角色。
  2. 在Mongo的实际实现中,您将在群集中运行多个节点,只有一个工作者角色(正如您在问题中所建议的那样),这是不可能的。
  3. 需要在工作人员角色中管理您的MongoDb安装,而且他们根本就没有为此设计。
  4. 如果您确实使用Mongo,我建议您使用MongoLabs等托管解决方案(如前面的答案中所述),或者考虑在Azure IaaS VM上托管它。

    如果你没有使用Mongo,我真诚地建议你看一下Azure DocumentDb(上面也提到过),微软的Azure NoSQL产品 - 我已经在几个生产系统中使用它了,它肯定是有能力的NoSQL解决方案;如果被授予,可能没有MongoDb提供的所有功能。

    如果您正在寻找NoSQL解决方案来缓存数据(即长期存储),我建议您查看Azure Redis缓存,这是一个非常强大的Redis产品。

答案 1 :(得分:0)

Azure有自己的原生NoSQL文档数据库,名为DocumentDB,你有没看过它?如果我是你,我会使用DocumentDB,除非你有一些你没有提到过的特殊要求,但是你发布的DocumentDB的小要求信息就可以了。我不认为它在基本功能方面与MongoDB非常相似,请参阅this article for a comparison between Azure DocumentDB and MongoDB