Size: a a a

2020 September 09

VG

Vik Gamov in pro.kafka
Alex D
Всем доброго времени суток.
У меня есть задача обогащать поток данных в Kafka Streams из различных внешних источников.
Одним из вариантов рассматриваю обогащение потока через Processor API а именно через реализацию интерфейса org.apache.kafka.streams.kstream.Transformer.
В методе init планирую инициализировать и устанавливать коннект к внешнему источнику.
В методе transform​ планирую производить непосредственно обогащение.
В методе close планирую закрывать сессию к внешнему источнику.
В связи с этим есть три вопроса:
 1. На сколько такой подход к обогащению потока работоспособен?
 2. Как правильно передавать в Transformer параметры коннекта (Host, Port, Login, Password)
 3. Какие еще способы обогащения из внешних источников посоветуете?
По 2 пункту хотел передавать свои параметры через ProcessorContext, но это пока не поддерживается, обещают в следующих версиях.
Пока сделал передачу параметров через реализацию интерфейса TransformerSupplier.
Наброски кода тут https://pastebin.com/xfQ4kW7j
Не надо так.
источник

VG

Vik Gamov in pro.kafka
Приноси данные в топик, его в ktable и делай stream/table join
источник

AD

Alex D in pro.kafka
Vik Gamov
Не надо так.
А как правильно?
источник

VG

Vik Gamov in pro.kafka
Vik Gamov
Приноси данные в топик, его в ktable и делай stream/table join
Коннектором например если источник популярный / известный.
источник

AD

Alex D in pro.kafka
Vik Gamov
Коннектором например если источник популярный / известный.
Спасибо, это понятно, с этим вопросов нет.
А что делать когда не возможности притащить данные к себе в кафку?
Система которую мы не контролируем. Или в ней много данных и у нас нет возможности поставить туда CDC.
источник

VG

Vik Gamov in pro.kafka
Alex D
Спасибо, это понятно, с этим вопросов нет.
А что делать когда не возможности притащить данные к себе в кафку?
Система которую мы не контролируем. Или в ней много данных и у нас нет возможности поставить туда CDC.
Какой API у системы?
источник

AD

Alex D in pro.kafka
Vik Gamov
Какой API у системы?
ну допустим в качестве внешних систем Redis, Oracle, Кассандра и т.д.
источник

AD

Alex D in pro.kafka
Vik Gamov
Не надо так.
А в чем ты видишь минусы такого подхода (кроме быстродействия)?
источник

PA

Petr Antonov in pro.kafka
Приветствую! Есть ли возможность заставить корректно работать кластер кафки, который спрятан за балансером так чтобы все кто подключается к кафке видел бы только адрес балансера?
источник

VG

Vik Gamov in pro.kafka
Alex D
ну допустим в качестве внешних систем Redis, Oracle, Кассандра и т.д.
Для всего этого есть коннекторы
источник

VG

Vik Gamov in pro.kafka
Alex D
А в чем ты видишь минусы такого подхода (кроме быстродействия)?
Пришел бы на стрим вчера, и спросил вопрос этот. И я бы тебе все рассказал. Пойду детей в школу отвезу , и потом напишу
источник

AD

Alex D in pro.kafka
Vik Gamov
Пришел бы на стрим вчера, и спросил вопрос этот. И я бы тебе все рассказал. Пойду детей в школу отвезу , и потом напишу
Хорошо, спасибо, потом меня тоже устраивает
источник

АР

Алексей Рыжиков... in pro.kafka
Petr Antonov
Приветствую! Есть ли возможность заставить корректно работать кластер кафки, который спрятан за балансером так чтобы все кто подключается к кафке видел бы только адрес балансера?
Да, если сервера будут доступны напрямую тоже.
Bootstrap сервер в этом случае можно указать на lb, остальные через cluster metadata подтянутся
источник

HK

Huan Karlos in pro.kafka
привет всем, подскажите плз, можно ли в кафке использовать авторизацию по сертам (для сервисов) и по лдап для пользователей?
источник

PA

Petr Antonov in pro.kafka
Алексей Рыжиков
Да, если сервера будут доступны напрямую тоже.
Bootstrap сервер в этом случае можно указать на lb, остальные через cluster metadata подтянутся
А возможно под один хостнейм lb, но на разные порты повесить?
источник

АР

Алексей Рыжиков... in pro.kafka
см документацию по advertised.listeners
источник

PA

Petr Antonov in pro.kafka
Алексей Рыжиков
см документацию по advertised.listeners
смотрел, поэтому и спрашиваю, как я понимаю на один хостнейм и один порт повесить не получится? должны быть разными или хостнеймы или порты?
источник

АР

Алексей Рыжиков... in pro.kafka
нет, иначе вы весь протокол ломаете клиентский
в таком случае только самим писать проксю которая понимает kafka протокол и транслирует запросы, но это только больше проблем создаст
источник

АР

Алексей Рыжиков... in pro.kafka
посмотрите в сторону rest proxy уже тогда
источник

PA

Petr Antonov in pro.kafka
Алексей Рыжиков
нет, иначе вы весь протокол ломаете клиентский
в таком случае только самим писать проксю которая понимает kafka протокол и транслирует запросы, но это только больше проблем создаст
понятно, большое спасибо
источник