Расчет среднего времени прохождения туда-обратно (AMQP / RabbitMQ) - PullRequest
1 голос
/ 10 мая 2011

Учитывая кластер узлов RabbitMQ с кучей очередей, получающих сообщения от обмена темами, я хотел бы иметь возможность программно ответить на вопрос:

Для очереди X, что является текущим грубо оценка времени доставки сообщений / туда и обратно?

Используя API плагина управления RabbitMQ для самоанализа, я могу придумать целый ряд способов сделать это, ни один из которыхбыть ужасно сложным в реализации ([number of queued messages + 1] * average processing time), но все это похоже на переизобретение колеса.Есть ли признанные лучшие практики?Может быть, даже некоторые из готовых механизмов, предоставляемых RabbitMQ?

(Для записи мы говорим о RabbitMQ 2.4.1 из Ruby, используя старого доброго кролика 0.6.0 с некоторым собственным кодом абстракции).сверху.)

1 Ответ

0 голосов
/ 10 мая 2011

Я реализовал PoC, чтобы сделать что-то вроде того, что вы просите, используя клиент RabbitMQ Erlang. Вы можете увидеть демо этого здесь: http://vimeo.com/20966661

Используемый шаблон называется Smart Proxy, как описано в книге «Шаблоны интеграции предприятия».

Затем, чтобы увидеть пример кода, взгляните на эту библиотеку: https://github.com/videlalvaro/rmq_patterns

Найдите файл amqp_smart_proxy.erl

...