Я очень новичок в кафке, только учусь. Мне нужно создать архитектуру для модуля (используя. NET) как часть моей работы. Я хотел бы получить некоторые входные данные для проектирования моей архитектуры.
На более высоком уровне существует какая-то существующая система, которая будет выступать в роли производителя и будет создавать сообщения. В новом модуле, который должен быть спроектирован, мне нужно потреблять эти (миллиарды) сообщений, выполнять некоторую тяжелую обработку и создавать сообщения на основе результатов для отправки их в kafka. Сначала кажется, что потоки Kafka хороши для этого, но есть несколько проблем:
1) Может быть некоторое время, когда мне нужно повторно обработать сообщения. (индивидуально или навалом) Будут миллионы сообщений для повторной обработки. Это может быть сбой на стороне производителя или некоторые записи отсутствовали, когда производитель отправил его, или какая-то ошибка на стороне потребителя, или просто случайное требование снова обработать данные за последний месяц. Как я могу повторно обрабатывать записи через некоторое время (неделю или месяц), я думаю создать таблицу (например, задания или что-то), и как только я получу сообщение от потребителя, создаст запись в этой таблице с некоторым флагом. Если мне нужно обработать снова, я буду ссылаться на эту таблицу и отправлять сообщения. Любой лучший способ или потребительские компенсации могут помочь с этим, или Кафка предоставит что-нибудь для этого? Я знаю, что Кафка обрабатывает в режиме реального времени, но нужно выполнить это требование, поэтому был бы признателен, если бы я мог получить некоторые предложения для этого.
2) Я также должен создать хранилище аналитических записей на основе полученных сообщений, которые позже будут использоваться в заданиях ETL. Для этого я собираюсь использовать некоторые приемники коннекторов. Как это могут быть миллионы данных. Какая раковина лучше всего подходит?
Кто-нибудь может дать больше информации, идей и рекомендаций?