2017-07-19 9 views
0

私のコードのいくつかをXMLからjava dslスタイル(pre-java8)に移行しようとしています。スプリング統合java dsl - java 7 - アウトバウンドチャネルアダプタでポーラーを設定

これは私が作成したJavaの設定です。私はポーラーの設定方法を理解することができません。この例ではグローバルポーラーについてしか話しませんが、私のケースではアダプター内にポーラーを設定する必要があります。

@Bean 
    public MessageHandler kafkaMessageHandler() { 
    KafkaProducerMessageHandler<String, String> handler = 
     new KafkaProducerMessageHandler<>(kafkaTemplate()); 
    handler.setMessageKeyExpression(new LiteralExpression("kafka-integration")); 
    handler.setTopicExpression(new LiteralExpression("headers.kafka_topic")); 
    return handler; 
    } 

    @Bean 
    public KafkaTemplate<String, String> kafkaTemplate() { 
    return new KafkaTemplate<>(new DefaultKafkaProducerFactory<String, String>(producerConfigs())); 
    } 


    @Bean 
    public Map<String, Object> producerConfigs() { 
    Map<String, Object> properties = new HashMap<>(); 
    properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); 
    properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); 
    properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class); 
    // introduce a delay on the send to allow more messages to accumulate 
    properties.put(ProducerConfig.LINGER_MS_CONFIG, 1); 
    return properties; 
    } 

私が持っているXML同等物は、以下の通りです:

<int-kafka:outbound-channel-adapter 
    id="kafkaOutboundChannelAdapter" 
    kafka-producer-context-ref="kafkaProducerContext" 
    channel="kafkaChannel" > 
    <int:poller fixed-rate="1000" max-messages-per-poll="10000}"/> 
</int-kafka:outbound-channel-adapter> 

答えて

1

私が探していたまさにthe documentation ...

@Bean 
@ServiceActivator(inputChannel = "kafkaChannel" poller = @Poller(fixedDelay = "1000", ...) 
public MessageHandler kafkaMessageHandler() { 
    ... 
} 
+0

おかげで、参照してください。 – Vidhya

関連する問題