我们可以用Apache Kafka取代Cron工作吗

时间:2018-09-11 05:34:08

标签: php apache-kafka

我想使用php用Apache Kafka替换我的Cron作业。

这可能吗?

现在,我的cron确实可以在数据库上进行更新。同时发送电子邮件,短信取决于条件。还定期更新数据库。 以及数据库的日常备份。

是否可以使用kafka来实现

1 个答案:

答案 0 :(得分:0)

您需要根据事件而不是“批处理时隙”来设计整个环境,但是是的,从理论上讲这是可能的。作为中介,您可以从Cron中的Kafka进程开始,该进程将在可配置的时间内读取消息,然后处理该块。

对于您要查询的内容,您可以将CDC / changelog主题设置为数据库事件(如果将其压缩为主题,则无需进行每日备份,因为每个数据库事件在Kafka中都是持久存在的)。数据库历史记录的开始-查看Debezium项目作为起点),您可以派生相应的emailssms主题,您可以让用户轮询并触发SMTP,SMS或GCM / APN如果这是您要从中进行迁移的系统,则消息可能已经在执行。

这两个都不是必须要用PHP的(或者实际上是在另一个pub-sub系统上的Kafka)。我恳请您考虑一种基于微服务的方法,该方法使用对您的用例最有意义的客户端库和技术。例如,AWS可以集成Kinesis + SNS + SES,并且您具有等效的Kafka + SMS + Email解决方案,而无需维护自己的基础架构。

但是,在沿着这条路径走之前,您需要停止将数据批处理成片供Cron处理,而是逐个事件地发布数据,并根据需要在某些时间范围内进行连续的滚动聚合