отправить сообщение размером более 1 МБ с помощью nats-streaming?

#go #nats.io #nats-streaming-server

#Вперед #nats.io #nats-streaming-server

Вопрос:

Я пытаюсь отправить файл с помощью службы обмена сообщениями nats. Размер файлов может отличаться. Есть ли способ отправить более 1 МБ данных в теле сообщения или, возможно, прервать и объединить тело сообщения?

Комментарии:

1. Или вы могли бы загрузить его в какое-нибудь общее хранилище и отправить к нему только ключ.

Ответ №1:

ОБНОВЛЕНИЕ 2022-09-19

Согласно документам (https://docs.nats.io/reference/faq#is-there-a-message-size-limitation-in-nats ) размер по умолчанию равен 1 М и может быть увеличен до 64 м. (также смотрите другой ответ)

УСТАРЕВШАЯ ИНФОРМАЦИЯ

Согласно часто задаваемым вопросам NATS, вы не можете отправить сообщение размером более 1 М (https://docs.nats.io/reference/faq#is-there-a-message-size-limitation-in-nats ):

У NATS действительно есть ограничение на размер сообщения, которое вводится сервером и сообщается клиенту во время настройки соединения. В настоящее время ограничение составляет 1 МБ.

Системы обмена сообщениями не должны использоваться для передачи файлов. Используйте службу распределенного хранения для хранения файлов и передачи идентификатора файла в сообщении.

Комментарии:

1. Вы можете изменить размер сообщения для nats при настройке сервера.

2. Я использую тот же метод, который вы описали, но возникают проблемы, когда файл обрабатывается несколькими службами. Пример сервиса1 загружает файл, обрабатывает, загружает обработанный файл в хранилище. служба 2 обрабатывает загрузку файла службой 1, обрабатывает, загружает файл в хранилище. Таким образом, у нас так много узких мест для простой загрузки файла. У вас есть какие-либо предложения? Спасибо.

3. Теперь ссылка разорвана. Следующая ссылка выглядит как актуальная: docs.nats.io/reference /…

Ответ №2:

Вы можете запустить Nats с файлом конфигурации, чтобы определить максимальный размер сообщений:

 $ nats-server --config /path/to/nats.config
  

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

 # Override message size limit (bytes):
max_payload: 100000000
  

Смотрите доступные варианты на https://docs.nats.io/nats-server/configuration#configuration-properties