Kafka to Flink проблема обработки сообщений - PullRequest
0 голосов
/ 28 мая 2019

У нас есть приложение для потоковой передачи сообщений kafka -> flink -> MongoDB в режиме реального времени.
Когда мы отправляем небольшое количество сообщений (10-100), все работает нормально.
Но когда мы отправляем тысячи сообщений, поведение присторона обработки flink очень странная.
1. Бизнес-метод на стороне flink выполняется более чем одним потоком одновременно, что приводит к некорректному поведению.
2. Если какая-либо обработка сообщения завершилась неудачно, то последняянесколько успешно обработанных сообщений доставляются повторно, что приводит к повторному использованию сообщений.

Вот мои конфигурации kafka, flink: -
Kafka
Confluent Kafka, одна тема с 8разделы.
Кластер Flink
Один менеджер заданий и два менеджера задач.
Оба диспетчера задач имеют 8 основных процессоров.
flink-conf.yaml:

taskmanager.numberOfTaskSlots: 8  
parallelism.default: 8 

Сведения о задании Flink
Укажите свойства FlinkKafkaConsumer011 как: prop.put ("enable.auto.commit", "true")
Контрольная точкаРежим: ровно однажды
Flink начался с параллелизма 8: flink run -p 8

...