Можем ли мы заменить работу cron на apache kafka? - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу заменить свою работу cron на apache kafka, используя php.

Возможно ли это?

Теперь мой cron работает как обновление баз данных. Также отправка электронной почты, смс зависит от условий. Также периодически происходит обновление в базах данных. И ежедневное резервное копирование базы данных.

Возможно ли реализовать это с помощью kafka

1 Ответ

0 голосов
/ 11 сентября 2018

Вам необходимо спроектировать всю среду с точки зрения событий, а не «временных интервалов», но да, это теоретически возможно.В качестве прокладки вы можете начать с процесса Кафки в Cron, который будет читать сообщения в течение настраиваемого промежутка времени, а затем обрабатывать этот фрагмент.

Что касается того, о чем вы просили, вы можете создать тему CDC / журнал изменений для событий базы данных (если вы делаете эту тему компактной, вы устраняете необходимость в ежедневном резервном копировании, поскольку каждое событие базы данных является постоянным вКафка с самого начала истории вашей БД - посмотрите на проект Debezium в качестве отправной точки), и вы можете получить соответствующие emails или sms темы, которые ваши потребители опрашивают и запускают из сообщений SMTP, SMS или GCM / APN.как вы, вероятно, уже делаете, если это система, с которой вы переходите.

Ничто из этого не обязательно должно быть также в PHP (или в действительности Kafka над другой системой pub-sub).Я бы умолял вас рассмотреть подход, основанный на микросервисах, который использует клиентскую библиотеку и технологию, наиболее подходящую для ваших случаев использования.Например, AWS может интегрировать Kinesis + SNS + SES, и у вас есть эквивалентное решение Kafka + SMS + Email без инфраструктуры для обслуживания.

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

...