НАТС с молекулой. Как я могу изменить значение NATS max_payload?

Моя проблема в том, что мне нужно увеличить значение max_payload, которое получает NATS, но я понятия не имею, где это сделать.

В проекте используется Moleculer, а NATS создается как контейнер с докером.


Когда я пытаюсь сделать запрос размером более 1 МБ, NATS возвращает:

ERROR - NATS error. 'Maximum Payload Violation

В журналах док-станции NATS возвращает:

cid:1 - maximum payload exceeded: 1341972 vs 1048576

Я пробовал следующие предметы:

Пример кода конфигураций Moleculer Broker:

const brokerConfig: BrokerOptions = {
  ...,
  transporter: "NATS",
  transit: {
    maxQueueSize: 100000,
    disableReconnect: false,
    disableVersionCheck: false,
  },
  ...
}

Пример кода конфигурационного файла nats:

{
  max_payload: 1000000
}

Ошибка при запуске докера с файлом конфигурации NATS:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/home/matheus/nats-server.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/08959b2fce0deb2abea27e103f7f4426b7ed6f3ef64b214f713ebb993c2373e6/merged\\\" at \\\"/var/lib/docker/overlay2/08959b2fce0deb2abea27e103f7f4426b7ed6f3ef64b214f713ebb993c2373e6/merged/nats-server.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. error Command failed with exit code 125.

person Matheus Richard Chignolli    schedule 09.01.2021    source источник


Ответы (1)


Вам следует создать файл конфигурации для NATS. И вставьте его в контейнер как том Docker и установите command как -c nats-server.conf

nats-server.conf

max_payload: 4Mb

Запустить контейнер

docker run -d -p 4222:4222 -v ~/nats-server.conf:/nats-server.conf nats -c /nats-server.conf
person Icebob    schedule 09.01.2021
comment
Привет, спасибо за ответ! Я пытался это сделать, но полезная нагрузка не изменилась. Когда я запускаю контейнер, как вы сказали, он выводит ошибку, потому что есть параметр -v, поэтому я сбросил его, и контейнер запустился, действительно ли это необходимо и почему? В противном случае я продолжил тестирование без -v и все еще не менял значение по умолчанию = (Вы знаете, есть ли другой способ изменить его? Спасибо - person Matheus Richard Chignolli; 09.01.2021
comment
Я добавил ошибку, которую он возвращает, когда создаю контейнер, как вы сказали. - person Matheus Richard Chignolli; 09.01.2021
comment
Что за ошибка? Превышена полезная нагрузка? - person Icebob; 11.01.2021
comment
Параметр -v правильный: i.imgur.com/Z2AmL11.png - person Icebob; 11.01.2021
comment
Теперь это работает! Большое спасибо, мне просто нужно было внести некоторые изменения в мой домашний каталог - person Matheus Richard Chignolli; 11.01.2021