У меня есть вопрос о максимальной отметке (HWM
) для подключения ZeroMQ PUB/SUB
. По сути, я хочу установить значение HWM
равным нулю.
т.е.: если сообщение не может быть доставлено, просто отбросьте его.
К сожалению, кажется, что значение HWM
может быть установлено только на уровне 1
.
"0
" означает бесконечность в соответствии с документацией API и моим тестированием.
На мой взгляд, использование "0
" для обозначения "бесконечный" в API было ошибкой:/
Вряд ли это изменится.
Есть ли обходной путь, не требующий перекомпиляции ZeroMQ
?
Проблема, с которой я сталкиваюсь, заключается в том, что при ненулевом HWM
при сбое соединения по крайней мере одно сообщение находится в очереди и отправляется при повторном установлении соединения. К тому времени сообщение уже недействительно, и ему нельзя доверять.
Я думал об отбрасывании сообщений на принимающей стороне, включая отметку времени, сгенерированную на отправляющей стороне. К сожалению, системные часы не подключены к Интернету и сильно дрейфуют. Синхронизация часов с дополнительным сокетом REQ/REP
представит отправителю другие сложные состояния запуска и кажется ненужным обходным решением.