spring-cloud-stream - Spring Cloud Stream Kafka 消费者模式

标签 spring-cloud-stream

对于具有多个分区的主题 -

1) 单个 SpringBoot 实例是否使用多个线程来处理(用 StreamListener 注释的方法)来自每个分区的每条消息?

2) 是否可以为每个分区配置多个线程,或者我必须手动从我的监听器线程切换到工作池?

最佳答案

....consumer.concurrency控制线程数(默认为 1)。

分区分布在线程中。如果您有 20 个分区和 4 个线程;他们每个人都会得到 5 个分区。

您需要拥有至少与所有实例的聚合并发数一样多的分区。 (如果您有 2 个应用程序实例和 5 个线程,则至少需要 10 个分区)。

您不应该跨多个线程分发来自单个分区的消息;将在您移交给新线程后立即提交偏移量,这可能会导致消息丢失。

您应该总是在分区数量超过并发需求方面犯错。

关于spring-cloud-stream - Spring Cloud Stream Kafka 消费者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049042/

相关文章:

spring - 在运行时更改 spring-cloud-stream 实例索引/计数

java - Spring云流0​​x104567911

spring - 如何在Spring Cloud Stream和Kafka中从同一主题发送和接收

avro - 尝试在 Spring Cloud Stream 中解码 Avro 消息时出现无法识别的 header 字节错误

java - 使用 Spring Cloud Streams 测试错误流

java - 创建 RabbitMQ 队列失败

spring - 如何在我的 Spring Cloud Stream 项目中将传入的 header 映射为 String 而不是 byte[]?

java - Azure 事件中心与 Spring Cloud Stream Kafka 的连接问题

spring-cloud - 更新到 camden 发布问题

spring - 为什么不推荐使用 StreamListener