云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_数据库专业_免费

小七 141 0

Minecraft地球和Azure宇宙数据库第2部分:提供交钥匙地理分布

这篇文章是一个分为两部分的系列文章的第2部分,讲述了组织如何使用azurecosmosdb来满足现实世界的需求以及它给他们带来的不同。在第1部分中,我们探讨了导致Minecraft Earth的服务开发人员选择Azure Cosmos DB的挑战,以及他们如何使用它以超低延迟捕获全球每个玩家的几乎所有动作。在第2部分中,我们将研究解决方案的工作量,以及Minecraft Earth服务开发人员如何从azurecosmosdb上构建它受益匪浅。地理分布和多地区写作Minecraft地球服务开发人员使用Azure Cosmos DB中的交钥匙地理分布功能来实现三个目标:容错、灾难恢复和最小延迟,后者还通过使用Azure Cosmos DB的多主功能来实现多区域写入。每个受支持的地理位置至少有两个服务实例。例如,在北美,Minecraft Earth服务在美国西部和东部的Azure区域运行,Azure的其他组件用于确定哪个更靠近用户并相应地路由流量。Minecraft地球服务开发团队的高级软件工程师Nathan Sosnovske解释说:"随着Azure在全球范围内的广泛应用,我们能够轻松地在全球范围内建立一个全球范围内的低延迟游戏体验。也就是说,人们大多在一个地理区域内旅行,这就是为什么我们在每个地理位置的所有服务实例之间都有多个主写设置。这并不是说一个住在旧金山的玩家不能去欧洲玩《地雷争霸地球》(Minecraft Earth),只是我们使用了一种不同的机制,以尽量减少这种情况下的往返延迟。"每秒请求单位数(RU/s)消耗在azurecosmosdb中,每秒请求单位(RU/s)是用于保留有保证的数据库吞吐量的"货币"。对于Minecraft Earth,一个典型的写请求用户大约为10ru/s,另外还有2-3ru/s用于后台处理由Azure服务总线驱动的append-only事件日志。"我们发现,我们的RU/s使用率呈线性增长;我们只需要在每秒写入请求相应增加的情况下增加容量。"一开始,我们认为我们需要更多的吞吐量,但结果发现有很多优化要做,"Sosnovske说我们最初的设计比较好地处理了请求量和复杂性,但它没有处理系统会分片的情况,也就是说,由于总体数据量的原因,在内部进行物理重新分区。"这是因为分配的RU/s在物理分区中平均分布,并且具有最新数据的物理分区比其他分区运行的热得多。Sosnovske解释说:"幸运的是,由于我们的系统被建模为一个只附加的日志,可以具体化为客户端的视图,所以我们很少直接从Azure Cosmos DB读取旧数据。"我们的数据模型非常灵活,允许我们在将事件处理成视图后将其归档到冷存储中,然后使用其生存时间功能从Azure Cosmos DB中删除它们。"今天,在服务的当前架构下,Sosnovske根本不担心可伸缩性。"在开发过程中,我们测试了azurecosmosdb的可伸缩性,最高可达一百万RU/s,它毫无问题地提供了这个吞吐量,"Sosnovske说。"地雷地球"的首次发射Minecraft Earth于2019年10月正式发布于one geography,在接下来的几周内完成了在所有其他地理区域的全球推广。对于Minecraft迷来说,Minecraft Earth提供了一种在增强现实世界中体验他们所熟悉和喜爱的游戏的一种全新的方式。而对于索斯诺夫斯克和所有其他帮助将《地雷争霸地球》带入现实生活的开发者来说,有机会将有史以来最受欢迎的游戏之一扩展到增强现实领域,同样值得一试。索斯诺夫斯克回忆说:"我们很多人本身就是游戏玩家,他们抓住了成为游戏玩家的机会。"回顾过去,一切都很顺利,我们对结果都很满意。"使用Azure Cosmos DB的好处虽然azurecosmosdb只是几个支持Minecraft Earth的Azure服务之一,但它扮演着关键的角色。索斯诺夫斯克说:"我想不出另一种方法,如果不完全从头开始建造一个令人难以置信的复杂的东西,我们就能实现我们所做的一切。"azurecosmosdb提供了我们需要的所有功能,包括低延迟、全局分发、多主机写入等。我们所要做的就是好好利用它。"使用Azure Cosmos DB构建Minecraft Earth服务的具体好处包括:易于采用和实施。根据索斯诺夫斯克的说法,azurecosmosdb很容易被采用。"开始使用Azure Cosmos DB非常容易,尤其是在.NET生态系统的环境中,"Sosnovske说我们只需安装Nuget包并将其指向适当的端点。该服务的文档非常详尽;我们没有因为误解SDK的工作原理而出现任何重大问题。"零维护。作为Microsoft Azure的一部分,Azure Cosmos DB是一个完全托管的服务,这意味着Minecraft Earth services团队中没有人需要担心修补服务器、维护备份、数据中心故障等问题。"不用处理日常运营是一个巨大的好处,"索斯诺夫斯克说不过,这实际上是在Azure上构建的一个好处。"保证低延迟。开发人员选择azurecosmosdb的一个重要原因是,它为世界上任何地方任何规模的读写提供了保证的个位数(