Java 驼峰卡夫卡组件不工作,错误为“;因为必须配置代理”;

Java 驼峰卡夫卡组件不工作,错误为“;因为必须配置代理”;,java,apache-kafka,apache-camel,stream-processing,Java,Apache Kafka,Apache Camel,Stream Processing,使用Apache Camel的kafka组件(版本2.19.1)时出错,我正在尝试打印主题中的传入消息,我的管道是这样组成的: ... context.addRoutes(new RouteBuilder() { public void configure() { from("kafka://localhost:9092?topic=test&groupId=testing") .to("stream:

使用Apache Camel的kafka组件(版本2.19.1)时出错,我正在尝试打印主题中的传入消息,我的管道是这样组成的:

...
context.addRoutes(new RouteBuilder() {
            public void configure() {
                from("kafka://localhost:9092?topic=test&groupId=testing")
               .to("stream:out");
  context.start();
    }
}
在端点中尝试使用“/”和不使用“/”

我得到的是:

Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1: Route(route1)[[From[kafka://localhost:9092?topic=test&groupI... because of Brokers must be configured
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:147)
at org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3762)
at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3669)
at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3455)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3309)
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:202)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3093)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3089)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3112)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3089)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3026)
at org.apache.camel.MainApp.main(MainApp.java:60)
Caused by: java.lang.IllegalArgumentException: Brokers must be configured
at org.apache.camel.component.kafka.KafkaConsumer.<init>(KafkaConsumer.java:62)
at org.apache.camel.component.kafka.KafkaEndpoint.createConsumer(KafkaEndpoint.java:76)
at org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:69)
at org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:103)
at org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:172)
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)
... 12 more

Process finished with exit code 1
线程“main”org.apache.camel.FailedToCreateRouteException中的异常:无法创建路由route1:route(route1)[[From][kafka://localhost:9092?topic=test&groupI... 因为必须配置代理
位于org.apache.camel.impl.RouteService.warmUp(RouteService.java:147)
位于org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3762)
位于org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3669)
位于org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3455)
位于org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3309)
位于org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:202)
位于org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3093)
位于org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3089)
位于org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3112)
位于org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3089)
位于org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
位于org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3026)
位于org.apache.camel.MainApp.main(MainApp.java:60)
原因:java.lang.IllegalArgumentException:必须配置代理
位于org.apache.camel.component.kafka.KafkaConsumer.(KafkaConsumer.java:62)
位于org.apache.camel.component.kafka.KafkaEndpoint.createConsumer(KafkaEndpoint.java:76)
位于org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:69)
位于org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:103)
位于org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:172)
位于org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)
…还有12个
进程已完成,退出代码为1

我正试图弄明白,但我真的不明白问题出在哪里,我的kafka集群是一个单独的代理,所有的都已启动并运行(zookeeper和服务器),ty获得帮助

brokers=localhost:9092
添加到消费者uri。

查看URL的第一部分是
主题
,然后作为参数可以传递
代理
。因此官方文档对我来说似乎有点误导

from("kafka:{{consumer.topic}}?brokers={{kafka.host}}:{{kafka.port}}"
                    + "&maxPollRecords={{consumer.maxPollRecords}}"
                    + "&consumersCount={{consumer.consumersCount}}"
                    + "&seekTo={{consumer.seekTo}}"
                    + "&groupId={{consumer.group}}")
                    .routeId("FromKafka")
                .log("${body}");

但作为一般建议:Camel是,因此您可以随时查看github上的代码和示例。您还可以找到发布在那里的堆栈跟踪的那些行,然后跟踪丢失的内容。

现在我没有收到任何错误,但消费者不会坚持,它会以代码0退出,但应该坚持到显式错误出现为止context.stop()正在等待传入的消息,原因是什么?不,默认情况下(如果您有一个独立的Camel应用程序)不应该这样。有一些解决方案可以保持CamelContext运行,请检查这里:或者使用@mgyongyosiw引用的Camel主类,使用此结构我没有收到任何错误,但消费者不会等待消息,而是立即退出,代码为0i使用RabbitMQ组件,我只需要端点信息即可,保持状态监听传入流,我以前使用过的其他组件也这么做,组件本身有一个默认的轮询时间间隔,所以我认为不需要。你是对的。可能这个camel客户端和你的kafka服务器之间存在版本不兼容?我目前使用的是最新版本的confluent infrastructure,这是一个选择,我会试试。一旦你发现这是你需要的答案,请接受它