Снайпер или обычай монго

Это не тот или иной вопрос, пытающийся выяснить, чего мне не хватает в разнице и понимании. Обычно, когда я хочу распределить работу и ставить в очередь вещи, я записываю задания для выполнения в базу данных, такую ​​как mysql или mongodb, и тогда у меня будет что-то настроенное, что я могу заблокировать запись строки и разблокировать ее, чтобы избежать двух узлов, работающих на одном и том же вещь. Теперь я недавно слышал о gearman и пытаюсь найти разницу между этим и простым решением для базы данных. Кто-нибудь может сказать мне, что мне не хватает?

Приложение, над которым я работаю, берет много сложных данных журнала и может использовать некоторые аналитические данные. чтобы избежать перегрузки я не хочу обрабатывать на месте. Поэтому, когда они стоят в очереди, я просто записываю их в базу данных и жду, так что теперь я пытаюсь получить четкое представление о том, в чем разница и почему то, что я делал, было "неправильным путем"

1 ответ

Решение

Самая большая разница в том, что gearman не является базой данных. Я знаю, что вы это знаете, но я подумал, что повторю это. Gearman - это отдельная сущность, которая должна сама действовать как демон.

Gearman - это распределенная рабочая очередь, и рабочий уже готов, тогда как в базе данных, такой как MySQL или MongoDB, нет встроенной распределенной рабочей очереди и рабочего.

Gearman имеет распределенную систему регистрации и репликации, чего нет в обычных базах данных. Кроме того, он может равномерно распределять (как я уже говорил) работников и задания по большому кластеру (подумайте о кластерной обработке в точечных экземплярах AWS).

Когда вы не используете Gearman, у вас, вероятно, возникнет головная боль при попытке реализовать все то, что Gearman делает в вашем собственном коде, особенно в PHP, который ужасно работает в режиме deamon.

Таким образом, с Gearman вы получаете полное сообщество, разработанное и проверенное распределенной рабочей очередью и работником, тогда как с вашим собственным кодом... ну, я не уверен, что вы получите, так как я не уверен, что вы вводите в свою рабочую очередь и работника.

редактировать

Варианты использования Gearman по сравнению с простым решением:

  • Распределенный видеокодер
  • Научный кластерный расчет уравнений
  • Общее Объединение вычислительного оборудования для создания стека для обработки других задач.

Действительно Gearman сияет в распределенных средах. Это как MongoDB распределенных очередей заданий и рабочих. Это просто масштабируется.

Тем не менее, если вы работаете с простым приложением с не крупномасштабным распределенным кластером рабочих, то Gearman может быть излишним. Но из моего личного опыта его использования Gearman не намного сложнее в настройке, чем ваша собственная очередь.

Другие вопросы по тегам