@Lazoreth
Душу питона на работе

Почему у rabbitmq такая низкая производительность?

У нас на проекте микросервисная архитектура. Используем RPC паттерн (tornado + pika). На каждый результат создаётся queue с айдишником в rabbitmq. И при большом колличестве очередей(чем больше очередей тем сильнее) производительность падает, при чём колличество воркеров не имеет значения. Где-то на 50RPS rabbitmq встаёт колом, хотя воркеры команды выполняют. Тестили то же самое с Redis, просто результат клали в него с id команды, вывозит около 400RPS. Это мы неправильно готовим rabbitmq, или это такая спицифика? Может есть какие-то более удачные решения для реализации rpc в микросервисной архитектуре?
  • Вопрос задан
  • 1109 просмотров
Решения вопроса 1
@yarkin
В гугле по словам "rabbitmq" и "rpc" выдаётся ссылка на оф.документацию по Direct reply-to, Вы пробовали такой механизм? Создание/удаление очереди ради получения одного ответа это очень накладно. 50/400rpc это вообще не о чём, даже для RabbitMQ (конечно всё зависит от выделенных ресурсов, хранению на диске и т.д.).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
VladimirAndreev
@VladimirAndreev
php web dev
Что-то подсказывает, что у вас странная архитектура...
Ответ написан
Комментировать
@asd111
Тормозит из за того что для каждого ответа создается очередь. rabbitmq советует делать через direct reply to для повышения производительности https://pika.readthedocs.io/en/0.12.0/examples/dir...
Ответ написан
Комментировать
@artinnok
бекенд-программист
Можно попробовать кластеризацию для RabbitMQ и поиграться с настройками.
Еще есть вариант заюзать Apache Kafka - более мощное и высокопроизводительное решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы