首页 > 解决方案 > Cosmos DB:Gremlin API 请求太大异常。如何重试通话

问题描述

我在 Azure Cosmos DB 中有 1000 RU/s 的吞吐量,并且有大约 290 个查询要执行。我不断收到请求太大的异常。

每个查询都有 12 个属性和 1 个分区键,但我仍然认为 1000 RU/s 的查询应该正确执行。

我有一个 gremlinClient

    public static GremlinClient GetGremlinClient()
    {
        var gremlinServer = new GremlinServer(Endpoint, Port, enableSsl: true,
            username: "/dbs/" + Databasename + "/colls/" + Collectionname, password: Authkey);
        var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(),
            GremlinClient.GraphSON2MimeType);
        return gremlinClient;
    }

示例查询。我只是想添加顶点

g.addV('Experience').property('_test', 'dummy').property('someProperty', 'dummy').property('someProperty', 'dummy').property('someProperty', '文档所有部门的业务流程以及管理水平,以便为中型工业企业明智地选择 ERP 系统;角色:项目管理 ').property('someProperty', '2016').property( 'someProperty', 'Offen').property('someProperty', 'Dummy').property('someProperty', 'EN').property('someProperty', 'Industry').property('someProperty', 'Process整个公司的文档,以便深入选择 ERP 系统。')

那个 for-each 执行所有的查询

  foreach (string query in queries)
  {
            await gremlinClient.SubmitAsync<dynamic>(query);
  }

我得到的错误

服务器错误:\r\n\nActivityId : 2312f64f-b865-49cc-bb26-843d46313199\nExceptionType : RequestRateTooLargeException\nExceptionMessage :\r\n\tMessage: {\"Errors\":[\"Request rate is large\"] }\r\n\tActivityId: 157daf87-3238-4e1c-9a81-41bcd6d7c2e1, 请求 URI: /apps/413f848b-ce17-40fc-ad7f-14c0e21e9633/services/29abd22a-4e74-48c1-aab3-b311be968c845epartitions/9529/- 4f74-4d7f-8d12-26e79b910143/replicas/132142016542682221s/, RequestStats: \r\n\tRequestStartTime: 2019-10-24T09:27:38.2395067Z, RequestEndTime: 2019-10-24T09:27:38 区域数.239 :1\r\n\t响应时间:2019-10-24T09:27:38.2395067Z

它是一个简单的代码,我不明白我可以改变什么。

有没有办法重试同一点的请求,或者以某种方式没有得到错误或避免错误

标签: azureazure-cosmosdbgremlingremlin-serverazure-cosmosdb-gremlinapi

解决方案


您收到的例外情况是Request*Rate*TooLargeException,这意味着您在短时间内提交了太多请求。

对于运行批量操作,您应该使用供应商特定的工具


推荐阅读