簡體   English   中英

使用 Apache Camel 的 Kafka 消費者

[英]Kafka consumer using Apache Camel

我是 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);
}

我有以下問題:

  1. 上下文在啟動后立即停止。
  2. 如果我使用消費者模板輪詢到端點,它不會打印任何內容,而在 .process() 中,當我在無限循環中啟動上下文時,我可以打印 kafka 消息。 為什么消費者模板無法打印。
  1. 正如 Claus 已經評論過的,您的 Camel Context 將立即關閉,因為它沒有阻塞。 請參閱他的評論中的鏈接。
  2. 我想你錯過了一個template.start(); 啟動您的消費者。 有關示例,請參閱此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM