java - 使用 Apache Camel 的 Kafka 消费者
问题描述
我是 Apache 骆驼的新手。我们正在做 POC 以使用 Camel 开发 kafka 消费者。下面是示例代码。
context.addRoutes(new RouteBuilder(){
@Override
public void configure() throws Exception {
// TODO Auto-generated method stub
from("kafka:{{consumer.topic}}?brokers={{kafka.host}}:{{kafka.port}}"
+ "&consumersCount={{consumer.consumersCount}}"
+ "&seekTo={{consumer.seekTo}}"
+ "&groupId={{consumer.group}}")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Message message = exchange.getIn();
Object data = message.getBody();
System.out.println(data);
}
})
.to("seda:end");
});
context.start();
ConsumerTemplate template=context.createConsumerTemplate();
String info=template.receiveBody("seda:end",String.class);
System.out.println(info);
}
我有以下问题:
- 上下文在启动后立即停止。
- 如果我使用消费者模板轮询到端点,它不会打印任何内容,而在 .process() 内部,当我在无限循环中启动上下文时,我可以打印 kafka 消息。为什么消费者模板无法打印。
解决方案
- 正如克劳斯已经评论的那样,您的骆驼上下文正在立即关闭,因为它没有阻塞。请参阅他评论中的链接。
- 我认为您错过了
template.start();
启动消费者的机会。有关示例,请参见此链接。
推荐阅读
- php - 使用 ACF 组的嵌套中继器
- azure-active-directory - 错误:AADSTS90015:请求的查询字符串太长(在执行 ADFS 时)
- python - 有人可以解释一下如何在 python 上为 selenium 编写 xpath 吗?
- php - Laravel - 将大量条目保存到数据库
- itext7 - Itext7 - 在没有分页符的情况下合并 PDF
- go - 返回数组作为接口
- javascript - 根据时间选择动态更改 dateTimeLabelFormats
- java - 具有接口隔离的依赖注入 Ioc
- python - 运行服务器后出现 Django 404 错误(“找不到页面”)
- sql-server - 如何验证 Microsoft SQL Server 产品密钥是原始的?