Как настроить частоту (Один раз в день) для чтения сообщения от Kafka topi c в Spring Boot - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь обработать сбои и записываю сообщение в fail-Q в случае, если сообщение не удалось в течение db, сохранится из-за того, что db не работает или возникла какая-либо другая проблема.

Нам нужно повторить попытку сообщений от провала-Q один раз в день. так как мы используем файл свойств для настройки конфигурации потребителя:

# KAFKA
spring.kafka.bootstrap-servers=localhost:9092

## CONSUMER
kafka.topic.consumer.boot: tink_boot.j
kafka.consumer.group-id: tink_boot.j-001
### Kafka from 5000 to 60000
spring.kafka.consumer.auto-commit-interval: 5000
spring.kafka.consumer.client-id: service
### start reading from earliest messages
spring.kafka.consumer.auto-offset-reset: earliest

KafkaListener:

@KafkaListener(topics = "${kafka.topic.consumer.boot}", groupId = "${kafka.consumer.group-id}")
    public void receiveEvent(Event e){
     log.info("message received: " + e);
    }

Итак, как читать сообщения из Kafka-Q на основе определенного времени один раз в день в Весенний ботинок?

1 Ответ

1 голос
/ 27 марта 2020

Apache Kafka создан для обслуживания сообщений с потоковой передачей, поэтому я рекомендую вам запустить потребителя, который всегда читает сообщения из этой очереди и обрабатывает их.
Если по какой-то причине вы не могу обработать их сразу, пролить их на другую базу данных, которая подходит для ежедневной пакетной обработки, например:

  1. Ежедневная папка в локальной файловой системе
  2. Ежедневная папка в HDFS (Распределенная файловая система oop)
  3. Ежедневный скользящий индекс в ElasticSearch
    ...

Вы можете использовать KafkaConnect для этого Confluent построил несколько разъемов , включая ElasticSearch и HDFS из нашего примера.

...