Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 理解CosmosDB Gremlin API中的“x-ms-request-charge”和“x-ms-total-request-charge”_Node.js_Azure_Azure Cosmosdb_Gremlin_Azure Cosmosdb Gremlinapi - Fatal编程技术网

Node.js 理解CosmosDB Gremlin API中的“x-ms-request-charge”和“x-ms-total-request-charge”

Node.js 理解CosmosDB Gremlin API中的“x-ms-request-charge”和“x-ms-total-request-charge”,node.js,azure,azure-cosmosdb,gremlin,azure-cosmosdb-gremlinapi,Node.js,Azure,Azure Cosmosdb,Gremlin,Azure Cosmosdb Gremlinapi,我正在使用这个包来查询我的Cosmos DB帐户,目标是Gremlin Graph API。代码相当简单: const gremlin = require('gremlin'); const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator( `/dbs/<database-name>/colls/<container-name>`, "<my-account-key>" )

我正在使用这个包来查询我的Cosmos DB帐户,目标是Gremlin Graph API。代码相当简单:

const gremlin = require('gremlin');

const authenticator = new gremlin.driver.auth.PlainTextSaslAuthenticator(
`/dbs/<database-name>/colls/<container-name>`,
"<my-account-key>"
);
const client = new gremlin.driver.Client(
    "wss://<account-name>.gremlin.cosmosdb.azure.com:443/",
    {
        authenticator,
        traversalsource : "g",
        rejectUnauthorized : true,
        mimeType : "application/vnd.gremlin-v2.0+json"
    }
);

client.submit("g.V()")
.then((result) => {
    console.log(result);
})
.catch((error) => {
    console.log(error);
});
如果您注意到,有两件事与请求费用有关,基本上就是我的查询有多贵:x-ms-request-charge和x-ms-total-request-charge

关于这一点,我有三个问题:

这两者有什么区别? 我注意到x-ms-request-charge总是以0的形式出现,x-ms-total-request-charge是一个非零值。为什么呢?和 我应该使用哪个值来计算申请费用?我的猜测是使用x-ms-total-request-charge,因为它是一个非零值。
在我们讨论时,如果有人能告诉我x-ms-server-time-ms和x-ms-total-server-time-ms之间的区别,我将不胜感激

这些响应代码特定于我们的Gremlin API,并记录在这里

对于单个请求,Gremlin服务器可以发送多个部分响应消息的响应,这些消息大致相当于一个页面,但以流的形式返回,而不是像sqlapi那样以连续方式返回多个请求/响应

x-ms-request-charge是解决单个部分响应所消耗的RU。 x-ms-total-request-charge正在运行到当前部分响应的总RU消耗量。因此,当发送最后一条消息时,这将表示整个请求消耗的总RU。 根据Gremlin客户端驱动程序实现的不同,每个部分响应可能会暴露给调用方,或者驱动程序会在内部累积所有响应并返回最终结果。考虑到后者,这促使我们添加x-ms-total-request-charge,这样以这种方式实现的驱动程序仍然可以解决请求的总成本


谢谢您的提问,希望这对您有所帮助。

正在研究此问题。您询问的问题没有记录在我们的文档中。很快给你回复。谢谢@MarkBrown。如果我这边需要更多信息,请告诉我。这似乎是针对小精灵的。现在就开始了解细节。谢谢。谢谢马克的回答!这很有帮助。我确实有一些后续问题,但我将在您链接的文档页面上打开一个Github问题。再次感谢。
{
    "x-ms-status-code": 200,
    "x-ms-request-charge": 0,
    "x-ms-total-request-charge": 123.85999999999989,
    "x-ms-server-time-ms": 0.0419,
    "x-ms-total-server-time-ms": 129.73709999999994,
    "x-ms-activity-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}