卡夫卡消费者可以成为同一个卡夫卡组的生产者吗
Can a Kafka consumer be a producer on the same kafka group
我想使用 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 步应该在单个“事务”中执行。这样下一个消费者工作人员将在这个消费者完成的地方接手。
Kafka 可以吗?
消费者和生产者是独立的进程。没有什么可以阻止您生成消费者将轮询的数据。
如果您使用现有主题中的数据,然后 filtering/extracting 数据填充新主题,那么这就是 Kafka Streams 和 KSQL 的用例。
我想使用 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 步应该在单个“事务”中执行。这样下一个消费者工作人员将在这个消费者完成的地方接手。
Kafka 可以吗?
消费者和生产者是独立的进程。没有什么可以阻止您生成消费者将轮询的数据。
如果您使用现有主题中的数据,然后 filtering/extracting 数据填充新主题,那么这就是 Kafka Streams 和 KSQL 的用例。