Julian
Julian

Reputation: 4075

camel kafka route does not stay up

I am trying to use kafka with camel and set up the following route:

public class WorkflowEventConsumerRoute extends RouteBuilder {
    private static final String KAFKA_ENDPOINT =
         "kafka:payments-bus?brokers=localhost:9092";
    ...
    @Override
    public void configure() {
        from(KAFKA_ENDPOINT)
            .routeId(format(KAFKA_CONSUMER))
            .to("mock:end);
    }
}

When I start my spring boot application I can see the route gets started but immediately after this it shuts down without any reasons given in the logs:

2018-12-21 12:06:45.012  INFO 12184 --- [           main] o.a.kafka.common.utils.AppInfoParser     : Kafka version : 2.0.1
2018-12-21 12:06:45.013  INFO 12184 --- [           main] o.a.kafka.common.utils.AppInfoParser     : Kafka commitId : fa14705e51bd2ce5
2018-12-21 12:06:45.014  INFO 12184 --- [           main] o.a.camel.spring.SpringCamelContext      : Route: kafka-consumer started and consuming from: kafka://payments-bus?brokers=localhost%3A9092
2018-12-21 12:06:45.015  INFO 12184 --- [r[payments-bus]] o.a.camel.component.kafka.KafkaConsumer  : Subscribing payments-bus-Thread 0 to topic payments-bus
2018-12-21 12:06:45.015  INFO 12184 --- [           main] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started
2018-12-21 12:06:45.015  INFO 12184 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.23.0 (CamelContext: camel-1) started in 0.234 seconds
2018-12-21 12:06:45.019  INFO 12184 --- [           main] a.c.n.t.p.workflow.WorkflowApplication   : Started WorkflowApplication in 3.815 seconds (JVM running for 4.513)
2018-12-21 12:06:45.024  INFO 12184 --- [      Thread-10] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.23.0 (CamelContext: camel-1) is shutting down

On the other hand if create an unit test and point to the same kafka endpoint I am able to read the kafka topic content using the org.apache.camel.ConsumerTemplate instance provided by the CamelTestSupport

Ultimately if I replace the kafka endpoint in my route with an activemq one the route starts OK and the application stays up.

Obviously I am missing something but I cannot figure out what.

Thank you in advance for your help.

Upvotes: 1

Views: 862

Answers (1)

Claus Ibsen
Claus Ibsen

Reputation: 55555

Do your spring-boot app have a -web-starter or not. If not then you should turn on the camel run-controller to keep the boot application running.

In the application.properties add

 camel.springboot.main-run-controller = true

Upvotes: 1

Related Questions