Использование узловых кластеров и фоновых процессов Redis Bull для улучшения медленной производительности конечных точек - PullRequest
0 голосов
/ 11 июля 2019

В поисках повышения производительности для медленной конечной точки, которая блокирует цикл обработки событий.Использование базы данных Postgres, размещенной на Heroku.

Документы Heroku рекомендуют выполнять фоновые задания с Redis для повышения производительности.Похоже, что это потребует оплаты и настройки Redis поверх нашей текущей базы данных Postgres, а также настройки Bull для рабочих процессов.

https://devcenter.heroku.com/articles/node-redis-workers

Этот комментатор был создан с использованием кластеров Nose.js в качестве возможного решения.

Использование рабочих / фоновых процессов в node.js против асинхронного вызова

В настоящее время мы не используем Redis, если есть более простое (и более дешевое) решение, я бы предпочел это реализовать.Будет ли использование рабочих потоков Node достигать того же, что и установка Redis с Bull?Значительная часть вычислительного времени тратится на эту конечную точку, и мы уже предприняли усилия, чтобы улучшить ее путем индексации и реструктуризации.

1 Ответ

0 голосов
/ 12 июля 2019

Похоже, что у Redis есть существенный плюс: он будет кешировать данные и любые ошибки / развертывания / и т.д. не предотвратит потерю данных, что вы не можете сделать с работниками node.js, для этого вам нужно использовать что-то вроде RabbitMQ для хранения ваших рабочих мест. Если у вас есть время и ресурсы для повторной реализации Redis, или для вас это наиболее подходящий случай - попробуйте использовать работников, в противном случае какой-либо сторонний инструмент сделает это за вас без головной боли, если у вас есть некоторая несогласованность данных. Также вы не можете использовать рабочих и создавать однопоточное приложение и автоматически создавать его многократно, используя kubernetes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...