= 5;
rcv.Options.SendBuffer = 10; // тут и 0 пробовал и точно считать в 1 сообщение - ноль эффекта
Есть SUB сокет с опциями:
sender.Options.ReceiveHighWatermark = 5;
sender.Options.ReceiveBuffer = 10; // тут и 0 пробовал и точно считать в 1 сообщение - ноль эффекта
Запускаю я всю это добро и делаю следующие
1. Запускаю PUB сокет отдельным приложением
2. Запускаю SUB сокет и прибинжеваюсь к PUB сокету
3. В PUB сокетом пишу 40 сообщений
4. Жду... (минуту например)
5. Начинаю читать SUB сокетом и оно мне читает все 40 сообщений.
Вопрос - почему? Почему у меня в очередь в PUB залезло все 40 сообщений и почему в очередь на чтение все 40 сообщений прилетели?
а как иначе должно было быть?
Т.к. у меня HighWatermark = 5 в PUB, то все сообщения, которые попали в очередь после 5 сообщения должны быть дропнуты (это поведение описано в zeromq) А вот на счёт того, что должно происходить на SUB я вообще не уверен, т.к. даже если я тушу сервер, то при условии, что он прочитал хоть одно сообщение даже при потушенном PUB сокете мне их достаёт из воздуха
ок тебе на саб все 40 долетают и саб их обрабатывает?
ты уверен что правильно понял опцию ХайВотермарк?
Ну если я не правильно понял, то объясни мне
не могу, я первый раз слышу о зеро мк
Обсуждают сегодня