Справочная информация:
- Я пишу потоковый процессор kafka, который получает несколько событий, он должен обрабатывать их и отправлять их в несколько исходящих REST API путем их пакетирования или отправки по мере их поступления.происходят, если они имеют высокий приоритет (определяется на основе классификации событий).
- Пакетная обработка должна быть привязана как ко времени (1 мин), так и к памяти (1 МБ).
Вопрос:Могу ли я использовать Кафку в качестве буфера для требования дозирования?
Идея состоит в том, чтобы определить производителя kafka с batch.size равным 1 МБ и linger.ms как 1 мин и поместить эти события в тему kafka, ключом которой является идентификатор URL-адреса исходящего API.Потребительские потоки будут затем читать все сообщения за один раз каждую минуту (или всякий раз, когда они получают полезную нагрузку размером 1 МБ), группировать все их в одну полезную нагрузку и обращаться к исходящему API.
Меня беспокоит, является ли этоизлишнее, и если я смогу достичь аналогичной функциональности, используя пакеты java.nio, но опять же, мне все равно придется написать обертку поверх этого для ограничения по времени