Обнаружение медленных читателей с zmq (zeromq)

Я пытаюсь заменить маленькую систему обмена сообщениями собственной разработки и играю вокруг немного с zmq. Я должен буду обнаружить медленных читателей и загрузить/разъединить их - замедляют читателей, в значительной степени имеющих в виду конкретного потребителя, который является размером очереди, выше определенного порога.

До сих пор кажется zmq блоками каждый потребитель, если один из них является немного медленным (достаточно ярмарка) - но я не могу найти, что любой способ обнаружить потенциал замедляет потребителя. У кого-либо есть опыт с тем, ли и как это возможно с zmq - или имеет какую-либо другую систему обмена сообщениями брокера меньше к recccommend?

5
задан nos 21 August 2009 в 23:36
поделиться

1 ответ

Начиная с zeromq-2.0.7, вы можете установить параметр ZMQ_HWM на сокете ZMQ_PUB , чтобы контролировать максимальное количество сообщений, которые могут быть в очереди на подписчика. По достижении максимальной отметки все дальнейшие сообщения, предназначенные для этого подписчика, будут отброшены до тех пор, пока размер очереди не упадет ниже максимальной отметки. Это ограничивает объем памяти, выделяемой для того, что вы называете медленным читателем.

Однако, поскольку библиотека ZeroMQ предоставляет сокеты, а не клиентов, у вас нет возможности идентифицировать и принудительно отключать нежелательных клиентов без изменения самой библиотеки.

3
ответ дан 15 December 2019 в 06:31
поделиться