【问题标题】:Can a Kafka consumer be a producer on the same kafka groupKafka消费者可以成为同一个kafka组的生产者吗
【发布时间】: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 应该在单个“事务”中执行。这样,下一个消费者工作人员将在该消费者完成的地方接手。

卡夫卡可以做到吗?

【问题讨论】:

    标签: apache-kafka taskmanager


    【解决方案1】:

    消费者和生产者是独立的过程。没有什么可以阻止您生成消费者将轮询的数据。

    如果您使用现有主题中的数据,然后过滤/提取数据以填充新主题,那么这就是 Kafka Streams 和 KSQL 的用例。

    【讨论】:

    • 我可以在消费者中以事务方式提交并生成新消息吗?
    • 应该可以拨打commitSync(),是的。但是,如果您提交然后生产者失败,那将有效地跳过消息。如果您要生产回同一个集群,我建议您使用 Kafka Streams
    猜你喜欢
    • 2018-01-07
    • 2020-08-26
    • 2019-02-16
    • 2018-12-18
    • 1970-01-01
    • 2020-05-21
    • 2019-05-09
    • 2015-03-25
    • 2016-12-31
    相关资源
    最近更新 更多