我使用SignalR开发一个应用程序来管理websockets并允许我的客户端相互对话。
我打算在Azure工作人员角色上托管这个后台办公室。由于我的SignalR请求携带大部分时间保存在数据库中的数据,我想知道NoSQL的MongoDB而不是传统的SQL Server / Entity Framework对应该是一个好方法。
假设我的应用程序的数据类型将是大多数的字符串,我认为MongoDB将是一个可靠且高性能的解决方案,它将允许我摆脱Azure的SQL数据库成本。
有关信息,Azure辅助角色将在具有以下硬件的计算机上运行:1核CPU,3.5GB RAM和50GB SSD存储。
你认为我在这个架构上有一个良好的开端吗?
由于
答案 0 :(得分:2)
您认为我在这个架构上有一个良好的开端吗?
总之,没有。
用户询问了关于在工作者角色上运行Redis的类似问题 - Setting up Redis on Azure cloud service worker role - 该问答的所有内容都与MongoDb上下文相关。
我建议您阅读我的答案,因为它会更详细,但作为一个错误的架构方法的概述:
如果您确实使用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。