在Kafka中设计生产者和消费者的组件

时间:2015-04-23 12:32:59

标签: message-queue apache-kafka producer-consumer data-integration apache-samza

我使用KafkaZookeeper作为我的数据管道的主要组件,每秒处理数千个请求。我正在使用Samza作为实时数据处理工具,用于我需要对数据进行的小型转换。

我的问题是,我的一位消费者(假设为ConsumerA)会消耗Kafka中的多个主题并对其进行处理。基本上创建消化主题的摘要。我还想将这些数据作为一个单独的主题推送到Kafka,但这会在Kafka和我的组件上形成一个循环。

这是困扰我的,这是卡夫卡的理想建筑吗?

我是否应该在Samza中执行所有处理,并仅将消化(摘要)信息存储到Kafka的{​​{1}}。但是我要做的处理量非常大,这就是为什么我想为它使用一个单独的组件(Samza)。我想我的问题可以推广到所有类型的数据管道。

组件成为数据管道中的消费者和生产者是一个好习惯吗?

1 个答案:

答案 0 :(得分:1)

只要Samza写的不同主题而不是消费,不会,没有问题。读取和写入Kafka的Samza工作是该规范并且是该架构的预期。也可以让Samza的工作从另一个系统中获取一些数据,或者将一些数据从Kafka写入另一个系统(或者甚至根本不使用Kafka的工作)。

有一个工作读取和写入同一主题,是,你得到一个循环,并避免。这有可能填补你的卡夫卡经纪人。磁盘真的很快。