Ответы пользователя по тегу RabbitMQ
  • Разъяснения по работе RabbitMQ?

    iqw
    @iqw
    Serior Software Engineer
    1. Трактовка немного неверна, в кролике нету воркеров-задач, это из gearman. Там есть сообщения, обменники, очереди, консюмеры и продюсеры. Сообщения это не всегда задача, это может быть поток данных с другого приложения (не имеющего доступ к СУБД) для сохранения. В зависимости от технологий, которые Вы используете консюмеры выглядят немного по разному, например в php - действительно надо запускать каждый консюмер в 1 процессе (комманда), в java - можно запустить 1 процесс, который будет консюмить очередь и передавать сообщения в треды для обработки паралельно (вместо нескольких процессов). Разрулить ситуацию с поддержанием в запущенном состоянии нескольких комманд-консюмеров (в несколько процессов каждая) можно очень просто - supervisord. Это линуксовый софт, который конфигаеться на запуск определенной консольной команды и на количество ее инстансов, и следит за всеми. Выходит что у вас на каждый тип консюмера будет только по 1 supervisord конфигу, остальную работу по поддержанию в запущенном состоянии выполнит он. (Естесственно, если речь идет о пхп - надо хорошенько подебажить код консюмеров, чтобы избежать memory-leaks).

    2. Зависит от мощностей сервера, нормальная практика - 1 реббит сервер для нескольких проектов, который позже сможет перерости в кластер (на определенных нагрузках), но и на машину с сайтами можно попробовать его насетапать и использовать как Вы и думали - с префиксами.

    3. Очереди нужны там, где вы ощущаете что они помогут вам ускорить/стабилизировать приложение, пробуйте, экспериментируйте, и Вы увидите насколько хорошо кроль применим для Вашего типа задач.

    P.S. Я только когда дописал ответ увидел что вопрос 2016 года, так что извините, если тема уже не актуальна)
    Ответ написан
    Комментировать