每秒处理请求单位 (RUs/s) DocumentDB 中的峰值
Handling Request Units per Second (RUs/s) Spikes in DocumentDB
使用 DocumentDB 最困难的事情之一是计算您每天需要 运行 您的应用程序每秒多少个请求单位 (RUs/s),但在使用高峰期间也是如此。当你弄错时,DocumentDB 客户端会抛出异常,这是一个糟糕的使用模型。
如果我的应用程序在一天中的特定时间每秒使用更多的请求单位数 (RUs/s),那么我该如何在 DocumentDB 中处理这个问题?我不想整天设置非常高的 RUs/s,因为我会相应地被收费。我也不想每次都登录到 Azure 门户。
您可以在 Azure 上创建一个作业,仅在一天中需要的时候扩大集合的吞吐量,然后再缩小。
如果您的目标是 .NET 中的 DocumentDB,this Azure article 有示例代码展示了如何使用 .NET SDK 更改吞吐量。
article 中引用的具体 (C# .NET) 代码如下所示:
//Fetch the resource to be updated
Offer offer = client.CreateOfferQuery()
.Where(r => r.ResourceLink == collection.SelfLink)
.AsEnumerable()
.SingleOrDefault();
// Set the throughput to 5000 request units per second
offer = new OfferV2(offer, 5000);
//Now persist these changes to the database by replacing the original resource
await client.ReplaceOfferAsync(offer);
// Set the throughput to S2
offer = new Offer(offer);
offer.OfferType = "S2";
//Now persist these changes to the database by replacing the original resource
await client.ReplaceOfferAsync(offer);
我假设其他语言的 DocumentDB SDK 具有相同的功能。
此外,您可以从 Azure article found here 使用 PowerShell 更改服务级别。
$ResourceGroupName = "resourceGroupName"
$ServerName = "serverName"
$DatabaseName = "databaseName"
$NewEdition = "Standard"
$NewPricingTier = "S2"
$ScaleRequest = Set-AzureRmSqlDatabase -DatabaseName $DatabaseName - ServerName $ServerName -ResourceGroupName $ResourceGroupName -Edition $NewEdition -RequestedServiceObjectiveName $NewPricingTier
使用 DocumentDB 最困难的事情之一是计算您每天需要 运行 您的应用程序每秒多少个请求单位 (RUs/s),但在使用高峰期间也是如此。当你弄错时,DocumentDB 客户端会抛出异常,这是一个糟糕的使用模型。
如果我的应用程序在一天中的特定时间每秒使用更多的请求单位数 (RUs/s),那么我该如何在 DocumentDB 中处理这个问题?我不想整天设置非常高的 RUs/s,因为我会相应地被收费。我也不想每次都登录到 Azure 门户。
您可以在 Azure 上创建一个作业,仅在一天中需要的时候扩大集合的吞吐量,然后再缩小。
如果您的目标是 .NET 中的 DocumentDB,this Azure article 有示例代码展示了如何使用 .NET SDK 更改吞吐量。
article 中引用的具体 (C# .NET) 代码如下所示:
//Fetch the resource to be updated
Offer offer = client.CreateOfferQuery()
.Where(r => r.ResourceLink == collection.SelfLink)
.AsEnumerable()
.SingleOrDefault();
// Set the throughput to 5000 request units per second
offer = new OfferV2(offer, 5000);
//Now persist these changes to the database by replacing the original resource
await client.ReplaceOfferAsync(offer);
// Set the throughput to S2
offer = new Offer(offer);
offer.OfferType = "S2";
//Now persist these changes to the database by replacing the original resource
await client.ReplaceOfferAsync(offer);
我假设其他语言的 DocumentDB SDK 具有相同的功能。
此外,您可以从 Azure article found here 使用 PowerShell 更改服务级别。
$ResourceGroupName = "resourceGroupName"
$ServerName = "serverName"
$DatabaseName = "databaseName"
$NewEdition = "Standard"
$NewPricingTier = "S2"
$ScaleRequest = Set-AzureRmSqlDatabase -DatabaseName $DatabaseName - ServerName $ServerName -ResourceGroupName $ResourceGroupName -Edition $NewEdition -RequestedServiceObjectiveName $NewPricingTier