我已经阅读了一些关于微服务的内容,而且喜欢的方法似乎是每个微服务的单独数据库。关于Azure的CosmosDB,这是否意味着每个服务都有一个单独的表格?建筑设计的最佳方式是什么?Azure上的CosmosDB的微服务
1
A
回答
3
这里有很多因素需要考虑,这最终意味着这个问题没有正确的答案,它将非常具体地针对您要构建的应用程序的性质。因此,试图提供“一般”建议和模式的广泛陈述应该用大量的盐来进行。使用Cosmos时,需要考虑的许多高层次事情如下:
分区:根据选择合适的分区键,宇宙集合支持几乎无限的比例。因此,例如,您可以拥有一个集合并分隔您的服务,以便每个集合都写入一个不同的分区键。这将为您提供一种服务多租户形式,可能完全适合您的特定应用。但是,吞吐量也会在集合级别进行缩放,因此如果某些服务具有更高的读取和/或写入要求,则这可能不适用于您,并且可能表明该特定服务应该使用自己的集合,并且可以独立扩展。
成本:您按照最低吞吐量要求的集合计费。根据您的微服务的数量和性质,这可能会导致成本呈指数级增长,收益不大。
隔离:再次,根据您的应用程序的性质,您可能有一个艰难的业务需求,来自不同服务的数据在物理上彼此分离,这将迫使您使用单独的集合。
我试图在这里指出的一点是,这个问题绝对没有正确的答案。您需要在您尝试构建的解决方案的背景下仔细权衡利弊,并选择适合您的方法。
相关问题
- 1. CosmosDB Azure的功能结合
- 2. MongoError:连接在Azure上超时CosmosDB
- 3. 具有微服务的移动应用程序(在Microsoft Azure服务结构上)
- 4. Azure上的WCF服务
- 5. Azure上的FTP服务器
- 6. Windows Azure上的Web服务?
- 7. Azure服务器上的GraphQL
- 8. Azure上的PiCloud式服务?
- 9. 微软Azure网站服务不可用
- 10. 微软Azure移动服务URL错误
- 11. gremlin控制台到azure-cosmosdb
- 12. 物理分区 - Azure CosmosDB
- 13. 如何在Azure的CosmosDB中使用Django?
- 14. 如何在微软Azure上安装maven(应用服务)
- 15. graphql的微服务
- 16. JBOSS的微服务
- 17. 分离服务器上的微服务之间的通信
- 18. Docker上的微服务 - 架构
- 19. 如何在Azure云上比较mongoDb与CosmosDb的性能?
- 20. Azure上的云服务的静态IP
- 21. 通过azure流分析将ISODate字段插入到CosmosDB中作为服务MongoDB
- 22. 微服务的其他服务
- 23. 微服务的API网关服务.Net
- 24. 在Azure DocumentDB/Azure中选择字典的键和值CosmosDB
- 25. Azure云服务上的服务网站的相对路径
- 26. 在Azure服务Fabric群集上部署的服务的复制
- 27. 微服务:如何存储许多微服务的源代码?
- 28. mac上的azure服务总线监控
- 29. Azure移动服务上的节点域
- 30. web服务上的Azure模块
我的应用程序是一个简单的配方应用程序,它包含一个配方表和一个用户表(以及一些基本支持表)。 – TrevorBrooks
听起来不像使用Table API,是您的应用程序的不错选择。 Table API基本上只允许你在PartitionKey和Id上查询。你不想也能够查询你的食谱,用户等的实际属性吗?常规的Document API将是一个更好的选择。 –
我会研究一下,谢谢。我的印象是,你可以存储看起来像你定义的类的实体。 – TrevorBrooks