寻找动态创建Kafka主题的替代方法

时间:2015-11-29 22:40:10

标签: apache-kafka

我有一个服务,可以获取有关系统中某些实体的一些信息的快照,并保留以供以后处理。目前,在后续处理阶段,我们使用http。

获取信息

我想通过动态创建主题来使用Kafka存储此信息,以便快照不会相互混淆。当服务获取实体时,它会创建一个唯一的主题,然后我们获取的每个实体都会被推送到该主题。后面的处理阶段将作为参数传递主题,然后可以自己阅读所有信息。

这样做的好处是:

  1. 重新启动后续阶段处理可以在目前为止处理的偏移处重新启动。
  2. 如果有很多实体请求批处理请求(或流处理传入的http响应),因为我们只是一次读取一个请求。
  3. 以后可以轻松添加多个消费者群组用于其他处理目的。
  4. 但是,Kafka / Zookeeper对它可以支持的主题/分区总数有一些限制。因此,我需要在处理完成后或基于某些任意时间传递删除它们。此外,由于(某些)处理器必须知道何时已经读取了所有信息,我需要包括某种类型的" End of Stream"关于这个主题的消息。

    两个一般问题:

    • 动态创建和删除像这样的Kafka主题是不是很糟糕?
    • 包含" End of Stream"是不是很糟糕消息类型?

    主要问题:

    • 使用静态主题/分区是否有上述方法的替代方法,在进行处理之前不需要保留内存中的实体?

1 个答案:

答案 0 :(得分:0)

似乎一个“紧凑”主题可以替代