我想使用php用Apache Kafka替换我的Cron作业。
这可能吗?
现在,我的cron确实可以在数据库上进行更新。同时发送电子邮件,短信取决于条件。还定期更新数据库。 以及数据库的日常备份。
是否可以使用kafka来实现
答案 0 :(得分:0)
您需要根据事件而不是“批处理时隙”来设计整个环境,但是是的,从理论上讲这是可能的。作为中介,您可以从Cron中的Kafka进程开始,该进程将在可配置的时间内读取消息,然后处理该块。
对于您要查询的内容,您可以将CDC / changelog主题设置为数据库事件(如果将其压缩为主题,则无需进行每日备份,因为每个数据库事件在Kafka中都是持久存在的)。数据库历史记录的开始-查看Debezium项目作为起点),您可以派生相应的emails
或sms
主题,您可以让用户轮询并触发SMTP,SMS或GCM / APN如果这是您要从中进行迁移的系统,则消息可能已经在执行。
这两个都不是必须要用PHP的(或者实际上是在另一个pub-sub系统上的Kafka)。我恳请您考虑一种基于微服务的方法,该方法使用对您的用例最有意义的客户端库和技术。例如,AWS可以集成Kinesis + SNS + SES,并且您具有等效的Kafka + SMS + Email解决方案,而无需维护自己的基础架构。
但是,在沿着这条路径走之前,您需要停止将数据批处理成片供Cron处理,而是逐个事件地发布数据,并根据需要在某些时间范围内进行连续的滚动聚合