簡體   English   中英

使用Spring Integration Java配置創建消息驅動的入站通道適配器以連接到Kafka

[英]Creating a message driven inbound channel adapter to connect to Kafka using Spring integration java configuration

Java代碼使用Spring Integration Java DSL創建Kafka使用者

使用以下代碼創建消息驅動的適配器以連接以使用來自kafka的消息

@Value("${spring.kafka.bootstrap-servers}")
private String bootstrapServers;
@Value("${spring.kafka.topic}")
private String springIntegrationKafkaTopic;
@Bean
public IntegrationFlow kafkaReader() throws Exception {

    return IntegrationFlows
            .from(Kafka.messageDrivenChannelAdapter(listener(),ListenerMode.record))
            .channel("queureader")
            .get();
}

@Bean
public KafkaMessageListenerContainer listener() {
    return new KafkaMessageListenerContainer(consumerFactory(), new ContainerProperties(this.springIntegrationKafkaTopic));
}

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


@ServiceActivator(inputChannel = "queureader")
public void Print(Message<?> msg)  {

    System.out.println(msg.getPayload().toString());
}

在application.properties中

  • spring.kafka.bootstrap-servers =我們需要提及服務器名稱-spring.kafka.topic =主題名稱

您可以提及ConsumerConfig.GROUP_ID_CONFIG的任何值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM