我正在尝试将kafka与骆驼搭配使用,并设置以下路线:
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);
}
}
当我启动spring boot应用程序时,我可以看到路由已启动,但是在此之后它立即关闭,日志中没有给出任何原因:
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
另一方面,如果创建一个单元测试并指向相同的kafka端点,则可以使用CamelTestSupport提供的org.apache.camel.ConsumerTemplate实例读取kafka主题内容
最终,如果我用activemq替换路由中的kafka端点,则该路由将启动OK,并且应用程序将保持运行状态。
很明显我缺少了一些东西,但我不知道是什么。
预先感谢您的帮助。
答案 0 :(得分:0)
您的spring-boot应用程序是否具有-web-starter。如果没有,那么您应该打开骆驼运行控制器以保持启动应用程序运行。
在application.properties中添加
camel.springboot.main-run-controller = true