Пример использования Kafka Streams

Я создаю простое приложение, которое ниже по порядку -

1) Считывает сообщения от удаленного IBM MQ (устаревшая система работает только с IBM MQ)

2) Записывает эти сообщения в Kafka Topic

3) Читает эти сообщения из той же темы Kafka и вызывает REST API.

4) В будущем могут быть другие потребители, читающие эту тему.

Я узнал, что у Kafka есть новый API потоков, который должен быть лучше, чем потребитель Kafka с точки зрения скорости / простоты и т. Д. Кто-нибудь, пожалуйста, дайте мне знать, подходит ли API потоков для моего случая использования и в какой момент в моем процессе я могу подключить его?


person Avinash Kawale    schedule 19.04.2017    source источник


Ответы (3)


1) Считывает сообщения с удаленного IBM MQ (устаревшая система работает только с IBM MQ)

2) Записывает эти сообщения в Kafka Topic

Я бы использовал API Kafka Connect для (1) и (2).

3) Читает эти сообщения из той же темы Kafka и вызывает REST API.

Вы можете использовать Streams API, а также низкоуровневый Consumer API Kafka, в зависимости от того, что вы предпочитаете.

4) В будущем могут быть другие потребители, читающие эту тему.

Это работает "из коробки" - после того, как данные сохранены в теме Kafka в соответствии с шагом 2, многие различные приложения и «потребители» могут читать эти данные независимо.

person Michael G. Noll    schedule 20.04.2017
comment
Спасибо, Майкл !! - person Avinash Kawale; 20.04.2017

Это правда, что у Kafka Streams API есть простой способ потребления записей по сравнению с Kafka Consumer API (например, вам не нужно опрашивать, управлять потоком и циклом), но он также требует затрат (например, локальное хранилище данных - если вы выполняете обработку с отслеживанием состояния).

Я бы сказал, что если вам нужно потреблять записи одну за другой и вызывать REST API, используйте Consumer API, если вам нужна обработка с отслеживанием состояния, запрашивайте состояние темы и т. Д., Используйте Streams API.

Для получения дополнительной информации ознакомьтесь с этим сообщением в блоге: https://balamaci.ro/kafka-streams-for-stream-processing/

person jeqo    schedule 20.04.2017
comment
К вашему сведению: API Kafka Streams не заставляет вас использовать хранилища состояний или выполнять обработку с отслеживанием состояния. Конечно, вы также можете выполнять обработку без сохранения состояния (и, таким образом, вам не нужно оплачивать стоимость местных государственных магазинов). - person Michael G. Noll; 20.04.2017
comment
Спасибо, Майкл, я добавил это к ответу. - person jeqo; 20.04.2017
comment
Спасибо за ваш ответ !! - person Avinash Kawale; 20.04.2017

Похоже, вы не выполняете никакой обработки / преобразования после того, как потребляете свое сообщение из IBM MQ или даже после своей темы Kafka.

Первый -> из IBM Mq в вашу тему Kafka - это своего рода конвейер, а во-вторых -> вы просто вызываете REST API (я предполагаю, что без какой-либо обработки)

Принимая во внимание эти факты, кажется, что он хорошо подходит для простого потребителя.

Не будем использовать технологию только потому, что она есть :)

person Anil Singh    schedule 20.12.2018