Spring интеграция java dsl - java 7 - установить опросчик в адаптере исходящего канала

Я пытаюсь перенести часть своего кода из XML в стиль java dsl (pre-java8).

Это созданная мной конфигурация 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>

person Vidhya    schedule 19.07.2017    source источник


Ответы (1)


См. документацию ...

@Bean
@ServiceActivator(inputChannel = "kafkaChannel" poller = @Poller(fixedDelay = "1000", ...)
public MessageHandler kafkaMessageHandler() {
    ...
}
person Gary Russell    schedule 19.07.2017