Estoy tratando de desarrollar una aplicación de Primavera de arranque utilizando la biblioteca reactor-kafka
de reaccionar a algunos de los mensajes leídos de un tema Kafka.
Tengo una clase de configuración que construye una KafkaReceiver
.
@Configuration
public class MyConfiguration {
@Bean
public KafkaReceiver<String, String> kafkaReceiver() {
Map<String, Object> props = new HashMap<>();
// Options initialisation...
final ReceiverOptions<String, String> receiverOptions =
ReceiverOptions.<String, string>create(props)
.subscription(Collections.singleton(consumer.getTopic()));
return KafkaReceiver.create(receiverOptions);
}
}
Bueno ... y ahora? El uso no tan reactiva spring-kafka
biblioteca, puedo anotar un método con el @KafkaListener
y la primavera de arranque a crear para mí una escucha hilo de un tema Kafka.
¿Dónde debo colocar el KafkaReceiver
lugar? En todos los ejemplos que encontré la utilización directa del main
método, pero esta no es la manera de arranque .
Estoy usando la primavera de arranque 2.1.3 y 1.1.0 Reactor-Kafka
Gracias por adelantado.
Puesto que usted tiene que KafkaReceiver
frijol, ahora se puede hacer como esto:
@Bean
public ApplicationRunner runner(KafkaReceiver<String, String> kafkaReceiver) {
return args -> {
kafkaReceiver.receive()
...
.sunbscribe();
};
}
Este ApplicationRunner
frijol va a ser expulsado cuando el ApplicationContext
está listo. Ver sus JavaDocs para obtener más información.