首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cosmos DB SDK的连接问题

Cosmos DB SDK的连接问题
EN

Stack Overflow用户
提问于 2021-09-10 08:34:31
回答 1查看 678关注 0票数 0

我正在尝试使用Java SDK连接到一个CosmosDB实例。我的代码如下所示:

代码语言:javascript
运行
复制
public static void main(String[] args) {
  String host = "https://mycosmosinstance.cosmos.azure.com:443";
  String key = "mykey";

  InetSocketAddress proxy = InetSocketAddress.createUnresolved("corporate.proxy.net", 8080);

  ConnectionPolicy.getDefaultPolicy().setProxy(new ProxyOptions(ProxyOptions.Type.HTTP, proxy));

  CosmosClient cc = new CosmosClientBuilder()
                     .endpoint(host)
                     .key(key)
                     .gatewayMode()
                     .buildClient();   
  cc.getDatabase("MY_DB");

  cc.close();
}

如示例所示,Im位于公司代理之后。不过,连接应该不是问题,因为我们的mongo客户端工作得很好。端口是开放的,因为我可以直接远程登录。我无法访问Azure控制平面。

Im获取的RuntimeExceptions显示“客户端初始化失败。请检查端点是否可访问,以及您的身份验证令牌是否有效”。令牌与mongodb客户端使用的令牌相同。

尝试连接到443和10255 (作为mongo端口)会产生404和超时。

代码是错误的吗?有人有这方面的经验吗?

代码语言:javascript
运行
复制
Timeout log:


WARNING: [id:a0bf804d-1, L:/10.0.2.15:44498 - R:mycosmosinstance.cosmos.azure.com/10.x.x.x:10255] The connection observed an error

io.netty.handler.timeout.ReadTimeoutException

 

Sep 10, 2021 10:03:28 AM com.azure.cosmos.implementation.RxGatewayStoreModel lambda$toDocumentServiceResponse$3

SEVERE: Network failure

io.netty.handler.timeout.ReadTimeoutException

 

Sep 10, 2021 10:03:28 AM com.azure.cosmos.implementation.RxDocumentClientImpl lambda$getDatabaseAccountFromEndpoint$142

WARNING: Failed to retrieve database account information. io.netty.handler.timeout.ReadTimeoutException

Sep 10, 2021 10:03:28 AM com.azure.cosmos.implementation.GlobalEndpointManager lambda$getDatabaseAccountFromAnyLocationsAsync$2

SEVERE: Fail to reach global gateway [http://mycosmosinstance.cosmos.azure.com:10255], [{"innerErrorMessage":null,"cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":60636,"requestStartTimeUTC":"2021-09-10T08:02:28.031464262Z","requestEndTimeUTC":"2021-09-10T08:03:28.667618587Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":0,"subStatusCode":10002,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:02:28.033787036Z","durationInMicroSec":567084},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:02:28.600871087Z","durationInMicroSec":10852},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:02:28.611723553Z","durationInMicroSec":12087},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:02:28.623811005Z","durationInMicroSec":60036821},{"eventName":"received","startTimeUTC":null,"durationInMicroSec":0}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"26202 KB","availableMemory":"6023590 KB","systemCpuLoad":"(2021-09-10T08:03:02.912144761Z 3.5%), (2021-09-10T08:03:07.912029515Z 3.2%), (2021-09-10T08:03:12.911460277Z 3.1%), (2021-09-10T08:03:17.911173112Z 3.5%), (2021-09-10T08:03:22.912067928Z 2.2%), (2021-09-10T08:03:27.911201387Z 2.4%)","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}]

Sep 10, 2021 10:03:28 AM com.azure.cosmos.implementation.GlobalEndpointManager lambda$startRefreshLocationTimerAsync$12

SEVERE: startRefreshLocationTimerAsync() - Unable to refresh database account from any location. Exception: {"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","statusCode":0,"resourceAddress":"https://mycosmosinstance.cosmos.azure.com:10255/","innerErrorMessage":null,"causeInfo":"[class: class io.netty.handler.timeout.ReadTimeoutException, message: null]","responseHeaders":"{x-ms-substatus=10002}","requestHeaders":"[Accept=application/json, x-ms-date=Fri, 10 Sep 2021 08:02:27 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":60636,"requestStartTimeUTC":"2021-09-10T08:02:28.031464262Z","requestEndTimeUTC":"2021-09-10T08:03:28.667618587Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":0,"subStatusCode":10002,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:02:28.033787036Z","durationInMicroSec":567084},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:02:28.600871087Z","durationInMicroSec":10852},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:02:28.611723553Z","durationInMicroSec":12087},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:02:28.623811005Z","durationInMicroSec":60036821},{"eventName":"received","startTimeUTC":null,"durationInMicroSec":0}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"26202 KB","availableMemory":"6023590 KB","systemCpuLoad":"(2021-09-10T08:03:02.912144761Z 3.5%), (2021-09-10T08:03:07.912029515Z 3.2%), (2021-09-10T08:03:12.911460277Z 3.1%), (2021-09-10T08:03:17.911173112Z 3.5%), (2021-09-10T08:03:22.912067928Z 2.2%), (2021-09-10T08:03:27.911201387Z 2.4%)","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}

{"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","statusCode":0,"resourceAddress":"https://mycosmosinstance.cosmos.azure.com:10255/","innerErrorMessage":null,"causeInfo":"[class: class io.netty.handler.timeout.ReadTimeoutException, message: null]","responseHeaders":"{x-ms-substatus=10002}","requestHeaders":"[Accept=application/json, x-ms-date=Fri, 10 Sep 2021 08:02:27 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":60636,"requestStartTimeUTC":"2021-09-10T08:02:28.031464262Z","requestEndTimeUTC":"2021-09-10T08:03:28.667618587Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":0,"subStatusCode":10002,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:02:28.033787036Z","durationInMicroSec":567084},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:02:28.600871087Z","durationInMicroSec":10852},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:02:28.611723553Z","durationInMicroSec":12087},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:02:28.623811005Z","durationInMicroSec":60036821},{"eventName":"received","startTimeUTC":null,"durationInMicroSec":0}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"26202 KB","availableMemory":"6023590 KB","systemCpuLoad":"(2021-09-10T08:03:02.912144761Z 3.5%), (2021-09-10T08:03:07.912029515Z 3.2%), (2021-09-10T08:03:12.911460277Z 3.1%), (2021-09-10T08:03:17.911173112Z 3.5%), (2021-09-10T08:03:22.912067928Z 2.2%), (2021-09-10T08:03:27.911201387Z 2.4%)","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}

                at com.azure.cosmos.BridgeInternal.createCosmosException(BridgeInternal.java:466)


404 log:

ep 10, 2021 10:18:29 AM com.azure.cosmos.implementation.RxDocumentClientImpl$1 getDatabaseAccountFromEndpoint

INFO: Getting database account endpoint from https://mycosmosinstance.cosmos.azure.com:443

Sep 10, 2021 10:18:30 AM com.azure.cosmos.implementation.RxDocumentClientImpl lambda$getDatabaseAccountFromEndpoint$142

WARNING: Failed to retrieve database account information. {"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","statusCode":404,"resourceAddress":"https://mycosmosinstance.cosmos.azure.com:443/","error":"{\"code\":\"NotFound\",\"message\":\"null, StatusCode: NotFound\",\"additionalErrorInfo\":null}","innerErrorMessage":"null, StatusCode: NotFound","causeInfo":null,"responseHeaders":"{content-length=0, Date=Fri, 10 Sep 2021 08:18:30 GMT}","requestHeaders":"[Accept=application/json, x-ms-date=Fri, 10 Sep 2021 08:18:29 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":744,"requestStartTimeUTC":"2021-09-10T08:18:29.891310289Z","requestEndTimeUTC":"2021-09-10T08:18:30.635990134Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":404,"subStatusCode":0,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:18:29.894688313Z","durationInMicroSec":637342},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:18:30.532031288Z","durationInMicroSec":12332},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:18:30.544363773Z","durationInMicroSec":9266},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:18:30.553630445Z","durationInMicroSec":63763},{"eventName":"received","startTimeUTC":"2021-09-10T08:18:30.617394320Z","durationInMicroSec":11039}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"25671 KB","availableMemory":"6024121 KB","systemCpuLoad":"empty","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}

Sep 10, 2021 10:18:30 AM com.azure.cosmos.implementation.GlobalEndpointManager lambda$getDatabaseAccountFromAnyLocationsAsync$2

SEVERE: Fail to reach global gateway [https://mycosmosinstance.cosmos.azure.com:443], [{"innerErrorMessage":"null, StatusCode: NotFound","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":744,"requestStartTimeUTC":"2021-09-10T08:18:29.891310289Z","requestEndTimeUTC":"2021-09-10T08:18:30.635990134Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":404,"subStatusCode":0,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:18:29.894688313Z","durationInMicroSec":637342},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:18:30.532031288Z","durationInMicroSec":12332},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:18:30.544363773Z","durationInMicroSec":9266},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:18:30.553630445Z","durationInMicroSec":63763},{"eventName":"received","startTimeUTC":"2021-09-10T08:18:30.617394320Z","durationInMicroSec":11039}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"25671 KB","availableMemory":"6024121 KB","systemCpuLoad":"empty","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}]

Sep 10, 2021 10:18:30 AM com.azure.cosmos.implementation.GlobalEndpointManager lambda$startRefreshLocationTimerAsync$12

SEVERE: startRefreshLocationTimerAsync() - Unable to refresh database account from any location. Exception: {"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","statusCode":404,"resourceAddress":"https://mycosmosinstance.cosmos.azure.com:443/","error":"{\"code\":\"NotFound\",\"message\":\"null, StatusCode: NotFound\",\"additionalErrorInfo\":null}","innerErrorMessage":"null, StatusCode: NotFound","causeInfo":null,"responseHeaders":"{content-length=0, Date=Fri, 10 Sep 2021 08:18:30 GMT}","requestHeaders":"[Accept=application/json, x-ms-date=Fri, 10 Sep 2021 08:18:29 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":744,"requestStartTimeUTC":"2021-09-10T08:18:29.891310289Z","requestEndTimeUTC":"2021-09-10T08:18:30.635990134Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":404,"subStatusCode":0,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:18:29.894688313Z","durationInMicroSec":637342},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:18:30.532031288Z","durationInMicroSec":12332},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:18:30.544363773Z","durationInMicroSec":9266},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:18:30.553630445Z","durationInMicroSec":63763},{"eventName":"received","startTimeUTC":"2021-09-10T08:18:30.617394320Z","durationInMicroSec":11039}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"25671 KB","availableMemory":"6024121 KB","systemCpuLoad":"empty","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}

{"ClassName":"CosmosException","userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","statusCode":404,"resourceAddress":"https://mycosmosinstance.cosmos.azure.com:443/","error":"{\"code\":\"NotFound\",\"message\":\"null, StatusCode: NotFound\",\"additionalErrorInfo\":null}","innerErrorMessage":"null, StatusCode: NotFound","causeInfo":null,"responseHeaders":"{content-length=0, Date=Fri, 10 Sep 2021 08:18:30 GMT}","requestHeaders":"[Accept=application/json, x-ms-date=Fri, 10 Sep 2021 08:18:29 GMT]","cosmosDiagnostics":{"userAgent":"azsdk-java-cosmos/4.18.0 Linux/5.4.0-71-generic JRE/16","requestLatencyInMs":744,"requestStartTimeUTC":"2021-09-10T08:18:29.891310289Z","requestEndTimeUTC":"2021-09-10T08:18:30.635990134Z","responseStatisticsList":[],"supplementalResponseStatisticsList":[],"addressResolutionStatistics":{},"regionsContacted":[],"retryContext":{"statusAndSubStatusCodes":null,"retryLatency":0,"retryCount":0},"metadataDiagnosticsContext":{"metadataDiagnosticList":null},"serializationDiagnosticsContext":{"serializationDiagnosticsList":null},"gatewayStatistics":{"sessionToken":null,"operationType":"Read","resourceType":"DatabaseAccount","statusCode":404,"subStatusCode":0,"requestCharge":null,"requestTimeline":[{"eventName":"connectionCreated","startTimeUTC":"2021-09-10T08:18:29.894688313Z","durationInMicroSec":637342},{"eventName":"connectionConfigured","startTimeUTC":"2021-09-10T08:18:30.532031288Z","durationInMicroSec":12332},{"eventName":"requestSent","startTimeUTC":"2021-09-10T08:18:30.544363773Z","durationInMicroSec":9266},{"eventName":"transitTime","startTimeUTC":"2021-09-10T08:18:30.553630445Z","durationInMicroSec":63763},{"eventName":"received","startTimeUTC":"2021-09-10T08:18:30.617394320Z","durationInMicroSec":11039}],"partitionKeyRangeId":null},"systemInformation":{"usedMemory":"25671 KB","availableMemory":"6024121 KB","systemCpuLoad":"empty","availableProcessors":4},"clientCfgs":{"id":0,"connectionMode":"GATEWAY","numberOfClients":1,"connCfg":{"rntbd":null,"gw":"(cps:1000, rto:PT5S, icto:PT1M, p:false)","other":"(ed: true, cs: false)"},"consistencyCfg":"(consistency: null, mm: true, prgns: [])"}}}

                at com.azure.cosmos.BridgeInternal.createCosmosException(BridgeInternal.java:475)
EN

回答 1

Stack Overflow用户

发布于 2021-09-13 10:04:38

如果您使用的是HTTP proxy,请确保支持SDK GatewayConnectionConfig中配置的连接数。否则,您将面临连接问题。要使用任何代理配置,Java要求您将系统环境属性java.net.useSystemProxies设置为true。

另外,如果您使用的代理需要身份验证!此documentation将身份验证信息添加到代理,这应该有助于减轻403响应。如果是这样的话,您最终可能会进入没有Netty IO线程会导致ReadTimeoutException失败的状态。

由于无效的编码模式:阻塞Netty IO线程,可能会导致低吞吐量、高延迟和io.netty.handler.timeout.ReadTimeoutException故障。解决方法是在知道操作需要时间的情况下切换线程。

在美国西部只是一个例子的地方使用.preferredRegions(Collections.singletonList("West US"))。将首选位置设置为离应用程序最近的Cosmos DB区域。

Checkout:Diagnose and troubleshoot Azure Cosmos DB Java v4 SDK request timeout exceptions和状态代码404:Diagnose and troubleshoot Azure Cosmos DB not found exceptions

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69129479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档