azure - Cosmos DB - 请求超时/服务当前不可用错误
问题描述
我们使用 cosmos DB 并评估系统在负载下的性能。负载低至 7-9K 请求,我们随机获取服务当前不可用和请求超时错误。
有没有其他人遇到过这个问题?
下面是代码
创建客户
private void Initialize()
{
Client = new DocumentClient(new Uri(cosmosDbConfiguration.EndPoint), cosmosDbConfiguration.Key, new ConnectionPolicy
{
RetryOptions = new RetryOptions() { MaxRetryAttemptsOnThrottledRequests = 10, MaxRetryWaitTimeInSeconds = 180 },
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp
});
Client.OpenAsync().GetAwaiter();
CreateDatabaseIfNotExistsAsync().Wait();
CreateAllCollectionsIfNotExistsAsync().Wait();
}
创建文档
public async Task<Document> CreateDocumentAsync<T>(string collectionName, T dataRow)
{
return await Client.CreateDocumentAsync(GetCollectionUri(collectionName), dataRow);
}
以下是错误消息以及活动 ID
服务当前不可用。ActivityId:6bfcabb0-69b9-4671-b2d1-8bf1a831d77e,RequestStartTime:2019-04-08T21:48:14.3002274Z,尝试的区域数:1 ResponseTime:2019-04-08T21:48:48.3076636Z,StoreReadResult:StorePhysicalAddress: //cdb-ms-prod-westus1-fd4.documents.azure.com:14070/apps/112e82de-8353-4f6c-804f-e6ce36a8282f/services/9f5b24ad-6517-4487-855b-ac5e507a6f53/partitions/e24c749b-c701- 4b75-9a16-6dde04028f12/replicas/131991744298606536p/,LSN:-1,GlobalCommittedLsn:-1,PartitionKeyRangeId:,IsValid:False,StatusCode:410,IsGone:True,IsNotFound:False,IsInvalidPartition:False,RequestCharge:0,ItemLSN: -1, SessionToken: , ResourceType: Document, OperationType: Query , documentdb-dotnet-sdk/2.2.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0
消息:请求超时。ActivityId:72f7f069-2376-4c71-af44-a78780e53894,请求URI:/apps/28ad6635-acc0-4a33-8cbf-513f2a7ecff0/services/9015ec89-5cc9-4a36-825d-047766c72037/partitions8-4a33-8cbf-513f2a7ecff0/services/9015ec89-5cc9-4a36-825d-047766c72037/partitions8-4d-44 52dcee4635a4/replicas/131992241935694598p/,RequestStats:RequestStartTime:2019-04-08T21:59:06.5769926Z,尝试的区域数:1,SDK:documentdb-dotnet-sdk/2.2.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0
解决方案
推荐阅读
- java - 将数量从一种形式重新分配/转换为另一种形式
- django - 如何在 DJANGO 1.9 中定义模型
- intellij-idea - intellij如何自动完成字符串文字中的类
- php - How to use a while loop result within three dimensional array in php?
- php - 是否可以使用 Symfony 处理普通的旧 HTML 表单,但使用 CSRF 令牌?
- javascript - Js无法读取Rails表单上的输入属性
- r - 如何更改两条线之一的线型
- python - 通过字典迭代为搜索的键提取错误的值
- swift - 如何在子 ViewController 上 segue 后显示 UITabBar?
- python - 为什么函数中的 DataFrame.replace() 不会更改输入 DataFrame