Bump ... и обновление: не видел ответа на этот вопрос в течение более длительного времени. Я немного удивлен, что ни один разработчик RabbitMQ не вмешался. Я много играл с RabbitMQ и ZeroMQ. Я решил, что RabbitMQ не справляется с этой задачей, рассматривая решения для обмена сообщениями с высокой пропускной способностью. Реализация брокера и особенно логика синтаксического анализа является основным препятствием для повышения пропускной способности. Я исключил RabbitMQ из списка возможных вариантов.
Был опубликован официальный документ с описанием того, как они предоставили решение для управления потоками финансовых данных с малой задержкой и высокой пропускной способностью, но мне кажется, что все, что они сделали, это бросили в него аппаратное обеспечение, а не предоставили решение, которое нацелено на низкую задержку, высокую Требования к пропускной способности.
ZeroMQ, проделал отличную работу после более интенсивного изучения документации. Я могу запустить коммуникацию в процессе, она обеспечивает достаточно стабильные паттерны push / pull, pub / sub, req / rep и pair / pair, которые мне нужны. Я искал логику блокировки в шаблоне pub / sub, который не обеспечивает ZeroMQ (вместо этого он отбрасывает сообщения при превышении верхнего водяного знака), но шаблон push / pull обеспечивает блокировку. Итак, почти все, что мне нужно, предусмотрено. Единственное, что меня беспокоит, так это их понимание обработки событий; Реализация структуры событий через опрос / мультиплекс не очень удовлетворительна.