Приложение Spring Boot Kafka не получает сообщения - PullRequest
0 голосов
/ 22 мая 2018

Мы используем Spring boot 1.5.4.RELEASE, и я вижу следующие jar-файлы в нашем проекте gradle: spring-kafka-1.1.6, kafka-clients-0.10.1.1

У нас естьпростой класс получателя, как показано ниже:

`

   @KafkaListener(topics = "${mytopic.consume}")
    public void receive(byte[] event) {
        <our code here>...
    }

//$mytopic.consume is being picked up from properties file

`

В большинстве дней код работает нормально, и я могу правильно получать события и обрабатывать их, а затем внезапноон прекращает получать сообщения.Нет ошибок, нет предупреждений.Я вижу, что сообщения есть по теме, но наш слушатель, похоже, не использует их.Я попытался перезапустить приложение, перезапустить Eclipse, переключиться между режимом запуска и отладки, изменить имя группы в свойствах kafka - но ничего не работает.Через несколько часов мы смотрим на приложение, и вы идете - оно снова начинает работать, и мы получаем все сообщения, которые застряли.Иногда проблема может длиться более суток.Я подозреваю, что это НЕ проблема затмения, но, вероятно, способ установки корпоративного Kafka или какая-то ошибка в Kafka (меньшая вероятность, так как я не смог найти такую ​​проблему в Google).Я заметил эту проблему, даже когда микросервис был развернут в IBM bluemix.

Будем весьма благодарны за любые указатели.

Вот некоторые из наших свойств (которые могут представлять интерес), которые мы настроилив нашем приложении: `

acks=all
     retries=0
     batch.size=<a number greater than 10k>
     linger.ms=1
     buffer.memory=<a number in 10s of MBs - our incoming message is just few KBs>
     ENABLE_AUTO_COMMIT_CONFIG=true
     AUTO_COMMIT_INTERVAL_MS_CONFIG=1ms
     SESSION_TIMEOUT_MS_CONFIG=30ms
     zookeeper.sync.time=200ms
     zookeeper.session.timeout=400ms

`

1 Ответ

0 голосов
/ 25 мая 2018

Нет ничего явно неправильного в конфигурациях.Я бы посоветовал вам сделать шаг назад и начать все сначала.Создать новую группу потребителей.Потенциально также пишите код с нуля.

Проводите тесты с разным числом потребителей в группе потребителей, обратите внимание, что потребители должны быть равны или меньше числа разделов.Проведите тесты с разным количеством загружаемых сообщений и посмотрите, как это работает.В то же время, следите за кластером Кафки, оставляйте ли какие-либо брокеры кластер, что сменит лидеров на разделы.В конце концов, вы можете остановить некоторых потребителей и посмотреть, как перебалансировка влияет на ваших потребителей.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...