Как создать асинхронный потребитель Camel-кафка? - PullRequest
0 голосов
/ 24 января 2020

У меня есть маршрут на верблюде к потребителю из кафки. Он потребляет и производит с TPS 2000, если входящее сообщение составляет 18000 TPS. таким образом, у потребителя topi c есть потребительское отставание. Если я сохраню max.poll.recors = 500, я смогу достичь 2000 TPS. Если я сохраню настройки производителя requestRequiredAcks = 0, я могу достичь 4000 TPS. но все еще с отставанием потребителей. Мы знаем, что верблюжий маршрут завершен, когда от-> до завершен. потребитель, который потребляет 2 раздела с количеством потребителей 2, занят до завершения маршрута.

есть ли способ сделать потребителя Camel-Kafka асинхронным. любой пример кода?


        from("kafka:{{consumer.topic}}?brokers={{kafka_dev.host}}"
                    + "&maxPollRecords={{consumer.maxPollRecords}}" + "&consumersCount=2"
                    + "&seekTo=latest" + "&groupId={{consumer.group}}" + "&keyDeserializer="
                    + KEYDESERIALIZER + "&valueDeserializer=" + VALUEDESERIALIZER + SSL).doTry()
                            .routeId("route1")
                            .process(new CamelProcessor())
                            .to("kafka:{{producer.topic}}?brokers={{kafka_dev.host}}" +"&requestRequiredAcks=1" )

                            .doCatch(Exception.class));

Также мы заметили, что введение потоков на этом маршруте перечитывает одинаковые обработанные и отправленные сообщения. это ссылка верблюд-кафка

...