提问者:小点点

当用于存储所有业务事件时,如何为Kafka建模主题和分区?


我们正在考虑使用Kafka作为永远存储所有业务事件的一种方式。目的是能够启动我们尚未想到的新“微服务”,这些服务将能够利用所有以前的事件来构建它们的预测/状态。另一个用例可能是现有服务,我们希望“重放”该服务感兴趣的所有事件以重新创建其状态。

请注意,我们不打算将Kafka用作“事件存储”,因为事件将在“每个请求”时投影/加载到聚合中。

此外(据我所知)我们不知道消费者将如何使用事件。一个新的微服务可能需要各种不同的事件来创建其内部投影/状态。

  1. Kafka适合这个还是有更好的选择?
  2. 如果是这样,有什么好的方法来建模(主题/分区)?
  3. 我们目前正在使用RabbitMQ进行消息传递(业务事件被发送到RabbitMQ)。如果我们将来可以从RabbitMQ迁移到Kafka,那就太好了。我认为这可能会改变主题和分区的建模方式,因为现在我们对消费者将如何使用事件有了更好的理解。这与其他用例(无限保留和重放)兼容吗?

共1个答案

匿名用户

这是非常好的,你正在切换到KAFKA和是的,有可能保持数据在KAFKA经纪人,但我建议,而不是保持所有的数据在KAFKA经纪人所有的时间为什么你不能转储这些数据到HDFS或S3(AWS)这将是更便宜的,你将有所有的功能HDFS可用的数据。