什么是处理大量Kafka消息流的最佳解决方案?

时间:2020-10-07 17:09:20

标签: spring-boot apache-kafka apache-kafka-streams spring-kafka reactive-kafka

我正在构建一个新的微服务,该服务具有两个kafka主题,这些主题提供需要处理的大量消息(处理涉及对另一个微服务的REST调用),然后重新发布包含已处理消息的新消息。
经过一番搜索,我发现我可以使用以下解决方案之一:

  1. 通常的Kafka Consumer Producer API,带有用于处理消息的线程
  2. 据我所知,Kafka Steam API利用消息的消费,处理和重新发布到kafka的过程
  3. Kafka Reactive用于非阻塞和快速处理消息

这里的邮件目标是尽可能地实现高吞吐量,因为期望每个主题处理数百或数千条消息。
谁能给我一些更适合我的情况的行会指南,或者如果我误解了以上几点,可以纠正我吗?

1 个答案:

答案 0 :(得分:0)

关于实际实施框架(消费者,流,响应式)的建议最终可能基于观点。

独立于此选择,Kafka随主题内的分区数扩展。由于主题分区只能由(同一使用者组的)一个使用者实例使用,因此您要拥有大量分区和大量使用者实例。

您当然也可以使用大量主题,因为这也会增加并行度和吞吐量。

这可以独立于您的实现选择来实现。