【发布时间】:2022-01-06 19:49:03
【问题描述】:
我想将 Kafka 用作任务调度程序。这是一个例子:
假设我希望我的服务定期从一组给定帐户下载最新的推文。
生产者:当新的要提取的推特句柄被添加到服务时,生产者将这条消息推送到Kafka:
{ twitter_user: "new_user_handle", start_at: "current_timestamp"}
消费者:每个人都在无限循环中:
1. receive a task from Kafka: say {"elon_musk", "2021-11-29-22:55"}
2. extract all the tweets of user @elon_musk" since 2021-11-29-22:55.
3. produce a new message {"elon_musk", "<timestamp-of-latest-tweet-just-extracted>"}
4. Commit
当然,理想情况下,步骤 3 和 4 应该在单个“事务”中执行。这样,下一个消费者工作人员将在该消费者完成的地方接手。
卡夫卡可以做到吗?
【问题讨论】: