【发布时间】:2021-11-06 18:52:31
【问题描述】:
我正在尝试使用 Java SDK 连接到 CosmosDB 实例。我这样做的代码如下所示:
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();
}
如示例所示,我在公司代理背后。不过,连接应该不是问题,因为我们的 mongo 客户端工作正常。端口是开放的,因为我可以直接 telnet。我无权访问 Azure 控制平面。
我收到 RuntimeExceptions 说“客户端初始化失败。检查端点是否可访问以及您的身份验证令牌是否有效”。该令牌与我们的 mongodb 客户端使用的相同。
尝试连接到 443 和 10255(作为 mongo 端口)会产生 404 和超时。
代码错了吗?有人有这方面的经验吗?
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)
【问题讨论】:
-
您使用的 SDK 是针对 SQL API 帐户的,并且您提到了 Mongo,这是您要连接的 Mongo 还是 SQL API 帐户?
-
我正在尝试使用更改提要。我想这意味着 mongo,但我现在是一种霰弹枪调试。
-
更改源是多种类型的 Cosmos DB 帐户 (docs.microsoft.com/en-us/azure/cosmos-db/change-feed) 中存在的一项功能。您面临的问题是您拥有的帐户类型(Mongo)应该使用 Mongo 驱动程序。您使用的 SDK 用于 SQL API 帐户类型。 Mongo账号请见docs.microsoft.com/en-us/azure/cosmos-db/…
标签: java azure azure-cosmosdb