小编A L*_*A L的帖子

如何配置 Kafka 使其表现得像一个 FiFo 队列?

我有一个小问题,那就是我必须使用 kafka 作为通知系统来启动我的应用程序流,一切都很好,但我想知道当队列中有未读消息时我是否可以改变顺序.

我解释一下:当topic中有两条或更多条消息,消费者读取时,先读取,最后进入的,我希望它先读取,第一个进入的。

所以我想知道这是否可能,如果可能,我们必须为此做出改变。

我使用的是最新版本的 Spring Apache 和 Kafka 2.5.0

消费者配置:

@EnableKafka
@Configuration
public class KafkaConsumerConfig {

    private static final String BOOTSTRAP_ADDRESS = "";

    @Bean
    public ConsumerFactory<String, String> consumerFactory() {
        Map<String, Object> props = new HashMap<>();
        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_ADDRESS);
        props.put(ConsumerConfig.GROUP_ID_CONFIG, "id");
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        return new DefaultKafkaConsumerFactory<>(props);
    }


    @Bean
    public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {

        ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(consumerFactory());
        return factory;
    }
}


Run Code Online (Sandbox Code Playgroud)

卡夫卡消费者:


@Component
public class KafkaConsumer {

    @KafkaListener(topics = "Great_Topic")
    private void listen(String msg) { …
Run Code Online (Sandbox Code Playgroud)

java spring apache-kafka

2
推荐指数
1
解决办法
3170
查看次数

标签 统计

apache-kafka ×1

java ×1

spring ×1