У меня есть ситуация, когда я хочу создать большое количество объектов на Орионе.Я использую docker версию Orion и mongo с этим 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"
},
Так что я предполагаю, что эта проблема как-то связана с maxConnections,настройки reqPoolSize и т. д. в Orion.Но в Docker мне не удалось найти файл конфигурации Orion, и я не знаю, когда я набираю такие команды, как contextBroker -maxConnections 123456
, что настройки принимаются Orion и контейнером Docker.
Также журнал Orion пуст, иЯ не могу определить, что вызывает эту проблему, когда Орион работает на докере.
Итак, основные вопросы:
- Можно ли использовать Orion, работающий на докере, так же, как Orion, работающий на ВМ (есть ли запасные варианты)
- И как мне это сделать?проверьте эту проблему, когда Орион работает в докере, потому что я прочитал много документов / проблем, но не повезло (или я что-то упустил).
Если у вас есть какой-либо совет / совет, это действительно поможет.Спасибо
{
"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, затем он начинает создавать снова и т. Д.
Что меня смущает, так это то, что он не полностью отказывает, то есть работает, но не так, как задумано.Также кажется, что Орион закрыл сокет или повесил его на некоторое время, затем он снова открылся и создал как обычно, и так далее.Если вам нужна дополнительная информация, спросите, и спасибо за быстрый ответ.