Как подписаться на файл большого размера?- NATS Streaming проблема подписки - PullRequest
0 голосов
/ 02 декабря 2018

Я новый NATS.Я только что попытался отправить и получить текстовый файл, используя примеры NATS-потокового сервера.

Когда я отправляю текстовый файл (~ 9B), он работает


-Подключение ккластер 'test-cluster' в качестве клиента 'cs-publisher'.Публикация 1 сообщения на тему foo Url: nats: // localhost: 4222 Полезная нагрузка составляет 9 байт.Опубликовано 1 сообщение с подтверждением за 0,0076917 секунд (130 сообщений / с).

-Sub Подключение к кластеру 'test-cluster' в качестве клиента 'cs-subscriber'.Получение 1 сообщения на тему foo url: nats: // localhost: 4222 получило 1 сообщения в течение 6E-07 секунд (1666666 сообщений в секунду).


Но, когда я отправляю текстовый файл (~ 80 МБ)), подписка не сработала.


-Pub Подключение к кластеру 'test-cluster' в качестве клиента 'cs-publisher'.Публикация 1 сообщения на тему foo Url: nats: // localhost: 4222 Полезная нагрузка составляет 77552640 байт.Опубликовано 1 msgs с подтверждением за 1.2574163 секунды (0 msgs / second).

-Sub Подключение к кластеру 'test-cluster' в качестве клиента 'cs-subscriber'.Получение 1 сообщения на тему foo url: nats: // loaclhost: 4222


Я не знаю, почему подписка не реагирует.Я использовал тот же код и просто изменил файл, который я отправил.

byte [] payload = File.ReadAllBytes ("test.txt");

....

string guid = c.Publish (subject, payload, (obj, pubArgs) =>

Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 23 августа 2019

проблема в том, что NATS просто поддерживает сообщения размером до 1 МБ.https://nats -io.github.io / docs / faq.html # is-there-a-message-ограничение-размера-в-сообщениях

У вас есть 2 решения проблемы:

  1. Используйте хранилище объектов для хранения там больших данных и передачи ссылки в сообщении.
  2. разбейте ваше сообщение на несколько сообщений.Хотя я был бы очень осторожен, поскольку у вас нет гарантированного заказа, и сообщения могут в конечном итоге (если они заканчиваются) на разных подписчиках.Так что это ставит под вопрос использование NATS вообще.
...