0

因为响应主题是空的,当尝试同时发送 3 个请求时,只有一个得到响应。

下面是并发监听器容器:

@Bean
    public ConcurrentMessageListenerContainer<String, String> replyListenerContainer() {
        ContainerProperties containerProperties = new ContainerProperties(replyTopic);
        containerProperties.setGroupId(returnGroup);

        ConcurrentMessageListenerContainer<String, String> kafkaMessageListenerContainer =
            new ConcurrentMessageListenerContainer<>(consumerFactory(), containerProperties);
        kafkaMessageListenerContainer.setConcurrency(3);
        return kafkaMessageListenerContainer;
    }

我期望所有 3 个请求都应该按顺序完成。

4

1 回答 1

1

正如 Artem 所说,每个分区只能有一个消费者(每个消费者组)。

如果主题只有一个分区,则只能有一个消费者。

让一个回复容器接收多个回复副本根本没有意义。

如果您有 3 个主题的消费者并希望等待 3 个回复,则下一个版本 (2.3) 将有一个AggregatingReplyingKafkaTemplate. https://docs.spring.io/spring-kafka/docs/2.3.0.BUILD-SNAPSHOT/reference/html/#aggregatingreplyingkafkatemplate

于 2019-08-25T23:02:15.050 回答