gpt4 book ai didi

azure - 自动扩大/缩小 Cosmos DB RU

转载 作者:行者123 更新时间:2023-12-04 11:00:28 28 4
gpt4 key购买 nike

由于一段时间内的高流量爆发,我们遇到了限制 (429)。为了缓解此问题,我们目前增加了 azure 门户中的 RU,稍后再减少。

我想根据指标向上/向下扩展,但是,它不会公开为文档数据库容器创建的物理分区数量。

  • 如何获取文档数据库容器的物理分区数量?
  • 如果该群组中有人解决了自动缩放问题,我很想知道如何解决?

最佳答案

所需 RU 限制的依据是什么

我根本不会进入物理分区级别,因为无论如何负载可能不会均匀地分布在分区之间。我假设您可能不关心平均分区吞吐量,但需要处理最差的吞吐量。

因此,如果您需要完全自动缩放,那么我会集中精力跟踪节流事件(事后发生)或监控总 RU 使用情况(分区魔法)。为了获得真正的自动缩放,这两条路径都可能非常复杂,并且可能需要将这些路径组合起来。虽然升级似乎是可以实现的,但决定何时降级以及降级到什么水平就更棘手了。

在事情发生之前很难预料到意外的情况并对其做出可靠的 react 。与更简单的解决方案相比,一定要考虑在您的场景中是否值得。

基于日历的 RU 限制基线

一个更简单的解决方案是按照平均峰值负载趋势,通过准备好的时间表(即工作日 + 一天中的时间)设置 RU 限制。

这不会针对意外的峰值或下降自动缩放,并且需要一些监控来调整意外情况,但无论如何你都有,对吧?这种简单的解决方案将为您提供灵活的吞吐量限制和平均一天的可预测成本,并且只需付出最少的努力。

更改 RU 限制

一旦您知道在任何给定时间您想要什么 RU 限制,那么执行它就很容易了。增减或 RU 限制可以进行编程,例如通过 Azure functions 运行。 。实际更改限制的 C# 示例如下:

var offer = client.CreateOfferQuery()
.Where(r => r.ResourceLink == collection.SelfLink).Single();
offer = new OfferV2(offer, newthroughput);
client.ReplaceOfferAsync(offer);

您的 Azure 函数可能会定期勾选,并根据您配置的计划或收集的事件相应地调整新吞吐量

注意事项

无论您实现哪种自动缩放解决方案,请务必考虑为您愿意达到的高度设置合理的硬性限制。否则,如果发生意外或恶意事件 (DDOS),您可能会从 Azure 收到意外账单。在某些时候进行节流会更好。

关于azure - 自动扩大/缩小 Cosmos DB RU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com