在短时间内打开大量连接时的ECONNRESET

2023-12-01

我有这样的情况,我想在猎户座上创建大量实体。我正在将 Orion 和 mongo 的 docker 版本与此 docker-compose 一起使用。

version: "3"
services:
  mongo:
    image: mongo:3.4
    volumes:
      - /data/docker-mongo/db:/data/db
      - /data/docker-mongo/log/mongodb.log:/var/log/mongodb/mongod.log
    command: --nojournal
  orion:
    image: fiware/orion
    volumes:
      - /data/docker-mongo/log/contextBroker.log:/tmp/contextBroker.log
    links:
      - mongo
    ports:
      - "1026:1026"
    command: -dbhost mongo

现在,当我想上传 2000 个实体(为每个实体打开新连接,我知道可以做不同的事情,但现在这是请求)时,就会出现问题,我成功创建了不超过 600 个(或更少,从来不准确的数字),其中其余的失败创建时出现错误:

"error": {
            "errno": "ECONNRESET",
            "code": "ECONNRESET",
            "syscall": "read"
        },

所以我认为这个问题与 Orion 中的 maxConnections、reqPoolSize 等设置有关。但在 docker 中我无法找到 Orion 配置文件,我无法知道何时输入类似命令contextBroker -maxConnections 123456Orion 和 docker 容器正在接受该设置。

此外,Orion 的日志为空,当 Orion 在 docker 上运行时,我无法确定导致此问题的原因。

所以主要问题:

  • 在 docker 上运行的 Orion 是否可以像在 VM 上运行的 Orion 一样使用(是否有一些后备方案)
  • 当 Orion 在 docker 中运行时,如何检查这个问题,因为我读了很多文档/问题但没有运气(或者我错过了一些东西)。

如果您有一些建议/想法,那真的会有帮助。 谢谢

{
"orion" : {
"version" : "1.13.0-next",
"uptime" : "2 d, 15 h, 46 m, 34 s",
"git_hash" : "ae72acf9e8eeaacaf4eb138f7de37bfee4514c6b",
"compile_time" : "Fri May 4 10:12:18 UTC 2018",
"compiled_by" : "root",
"compiled_in" : "1901fd6bb51a",
"release_date" : "Fri May 4 10:12:18 UTC 2018",
"doc" : "https://fiware-orion.readthedocs.org/en/master/"
}
}



{ Error: socket hang up
at createHangUpError (_http_client.js:313:15)
at Socket.socketOnEnd (_http_client.js:416:23)
at Socket.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1090:12)
at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }


error:
{ Error: connect ECONNREFUSED ipofvirtualm:1026
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1174:14)
 errno: 'ECONNREFUSED',
 code: 'ECONNREFUSED',
 syscall: 'read',
 address: 'ipofvm',
 port: 1026 },

options:
{ method: 'POST',
 uri: 'http://ip:1026/v2/entities?options=keyValues',
 headers:
  { 'Fiware-Service': 'some service',
    'Fiware-ServicePath': 'some servicepath' },
 body:
  { id: 'F0B935',
    type: 'Transaction',
    refEmitter: 'F0B935',
    refReceiver: '7501JXG',
    refCapturer: 'testtdata',
    date: '12/12/2017 13:25',
    refTransferredResources: 'testtdata',
    transferredLoad: 92 },
 json: true,
 callback: [Function: RP$callback],
 transform: undefined,
 simple: true,
 resolveWithFullResponse: false,
 transform2xxOnly: false },

我正在使用请求承诺库来拨打电话,我尝试了其他人,他们也遇到了同样的问题。现在,由于我无法向您发送所有 2000 个回复,我将尝试描述一下。所以当我开始发送它时它就会表现出来。它创建了大约 30 个实体,然后接下来的几个或更多返回响应说 ECONNRESET,然后它再次开始创建,依此类推。

让我困惑的是,它并没有完全失败,这意味着它可以工作,但不符合预期。另外,猎户座似乎关闭了套接字或将其挂起一段时间,然后再次打开并正常创建,依此类推。如果您需要更多信息,请询问,并感谢您的快速答复。


为什么不使用每个实体打开一个新连接

POST /v2/op/update 

并在一批中创建所有实体?或几批

请参阅一些代码

https://github.com/Fiware/dataModels/blob/master/Weather/WeatherObserved/harvest/spain_weather_observed_harvest.py#L235

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在短时间内打开大量连接时的ECONNRESET 的相关文章

随机推荐

  • 是否可以在 ARM (Android/Linux) 上的执行过程中更改字节序?

    我想知道是否可以在 ARM 平台上更改正在运行的应用程序中间执行的字节序 正如你们中的一些人所知 ARM 是双字节序 支持大字节序和小字节序 我想知道在 Android 或一般的 Linux 上是否可以设置单个应用程序在执行时使用不同的字节
  • 启用适用于 Android 的 Places SDK 时出现问题 (google)

    请帮忙 当我单击 Places SDK For android 访问页面以启用时 显示如下 您没有足够的权限查看此页面 追踪号码 4169288790274014457 有什么问题 我应该怎么做才能启用这个API 谢谢 无法启用 Place
  • HTML 和 XHTML 有什么区别?

    注意 这应该是这个问题的规范帖子 已经存在许多答案 但对各种差异的描述分散在各处 而且通常 他们还提供 我应该使用哪一个 的意见 我将在这里避免这种情况 如果您还有更多问题要问 或者您知道更多差异 请随时进行编辑 XHTML 和 HTML
  • 如何让我的 Facebook 应用程序在安装后自动请求所需的权限

    我正在使用 Facebook PHP SDK 2 1 2 我想做的就是几乎每个 Facebook 应用程序都具有req perms有 安装时会弹出愚蠢的 请求权限 框 我不想要用户必须按下的按钮 我不希望出现弹出窗口 我不想使用 FBML
  • 将“this”和参数传递给 addEventListener 函数而不使用绑定

    接下来禁用插件时 引导插件中的删除事件监听器不起作用 我正在探索其他可能性 除了使用bind 并缓存绑定函数 有没有办法使用 this 并传递参数 works fine but can t pass argeement contextMen
  • UITableView 滑动手势需要近乎完美的准确性

    我正在为使用自定义 UITableViewCell 子类的 UITableView 开发自定义滑动事件 我包括了UIGestureRecognizerDelegate在我的标题中 并将其放入viewDidLoad UISwipeGestur
  • 在 GNU 汇编器宏中引用操作数/参数

    我目前正在尝试理解的概念汇编语言中的宏 特别是在 GNU 汇编器中 IA 32 x86 的 AT T 语法 我大学的幻灯片内容如下 How to define a macro macro write string movl string e
  • 在 Magento 中通过 SOAP 将产品添加到购物车时设置自定义选项

    我正在尝试使用购物车产品添加用于将具有自定义选项的产品添加到购物车的 SOAP API 下面是我为产品参数传递的数组 我有一个自定义选项 id 1 下拉列表中的选定值 id 为 2 您可以查看产品在这里 array size 1 0 gt
  • Android 快捷方式位图启动器图标大小

    我无法找到快捷方式的正确启动器图标大小 在我的 Nexus 7 2 上 android R dimen app icon size 参见代码 的值为 96 像素 但如果我在我的主屏幕截图上测量其他应用程序的真实图标大小 它是 120 像素
  • 类型错误:$ 在 jquery 中未定义

    我正在尝试在基于 WordPress 的网站上使用 jquery 中的 tabcordion 库 tabcordion javascript 文件正在 排队 并出现在 jquery 文件之后 因此该位看起来不错 jquery 代码的开头是
  • SQL CLR - 从 2008 R2 迁移到 2012。

    我在 SQL 2008 R2 上有一堆 SQL CLR 程序集 这些程序集以 Net Framework 3 5 为目标 鉴于 SQL 2008 支持 2 0 NET Framework 版本 我假设 SQL 从系统 GAC 加载安全程序集
  • 比较 mongo find 方法中的 2 个日期

    我有 mongo 文档 其中包含 last active 日期和创建日期 我想搜索所有包含以下内容的文档daylast active 不等于day创建的 但我不知道如何编写查询 在 MySQL 中我会这样写 WHERE DATE FORMA
  • 一键发布时:执行发布异常:已添加具有相同密钥的项目

    我意识到有十亿人询问过这个错误 但我已经查看了所有人 我的好像不一样我没有收到任何类型的源代码错误 没有堆栈跟踪 也没有任何有用的信息 因为在我的 MVC NET 项目上单击 发布 后立即发生错误 它只是一个对话框 仅此而已 没有其他事情发
  • Powershell 可执行文件未输出到 STDOUT

    来自 powershell 脚本 带有nuget安装并在路径上 我正在尝试执行可执行文件 net 如果这很重要 但由于某种原因 我无法在命令窗口中显示 STDOUT nuget install mdoc OutputDirectory pa
  • ES6 需要配置 webpack 吗?

    我有一个 Angular 应用程序 其中包含针对 ES6 的 tsconfig 文件 compileOnSave false compilerOptions allowJs true baseUrl outDir dist out tsc
  • 如何手动设置语料库中的文档ID?

    我正在从数据帧创建 Copus 我将其作为VectorSource因为我只想将一列用作文本源 这可以找到 但是我需要语料库中的文档 ID 来匹配数据帧中的文档 ID 文档 ID 存储在原始数据框中的单独列中 df lt as data fr
  • 增强序列化:前向兼容性因输入流错误而失败

    遵循这个问题 Boost序列化子类我正在尝试支持使用 boost 序列化生成的存档的前向兼容性 但我在使用较旧的代码读取较新的存档时遇到问题 class A public A virtual A default private friend
  • 如何避免 Scala 中类型绑定的重复

    我有一个带有约束类型参数的类 我尝试过identity但返回类型不精确 并且在方法中identityTP 我需要再次指定约束 如何避免使用适用于此类型的方法重复此约束 这是一个例子 sealed trait Location case ob
  • 添加到 window.onload 事件?

    我想知道如何向 window onload 事件添加另一个方法调用 被分配了一个方法调用 假设在脚本的某个地方我有这个作业 window onload function some methods 1 然后稍后在脚本中我有这个作业 windo
  • 在短时间内打开大量连接时的ECONNRESET

    我有这样的情况 我想在猎户座上创建大量实体 我正在将 Orion 和 mongo 的 docker 版本与此 docker compose 一起使用 version 3 services mongo image mongo 3 4 volu