Что мне делать с SourceRecords в Kafka

После создания объектов Connector и SourceTask в Kafka с Java я не могу понять, что можно сделать с SourceRecords, возвращаемым методом poll() объекта SourceTask.

Как я могу протолкнуть запись в тему, которая является параметром SourceRecocd?

Я имею в виду, что у нас есть создание SourceRecords в методе poll() следующим образом:

    records.add(new SourceRecord(sourcePartition, sourceOffset, config.topicName, Schema.STRING_SCHEMA, message));

Итак, как теперь создать сообщение в теме, которая указана config.topicName выше?

Заранее спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
279
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поле topic из экземпляра SourceRecord указывает на тему, в которой будет опубликовано сообщение. В вашем случае он должен опубликовать сообщение на config.topicName.

Вы имеете в виду, что создание объекта SourceRecord автоматически публикует сообщение в тему?

Novemberland 06.03.2019 23:29

Когда вы создаете SourceRecord, вы выбираете целевую тему. Кроме того, если вам нужно изменить его, вы можете сделать это позже через Transformations

Bartosz Wardziński 06.03.2019 23:31

Это означает, что если вы хотите сначала преобразовать записи, а затем опубликовать их, этого не произойдет? В этом случае создание объекта SourceRecord автоматически публикует сообщение в теме, параметры которой являются параметрами, а затем вы решаете, что делать с преобразованными записями?

Novemberland 06.03.2019 23:38

Нет, в зависимости от типа соединителя поток отличается. Для SourceConnector: 1. Записи опрашиваются из внешней системы, 2. Записи преобразуются, 3. Записи преобразуются в массив байтов, для SinkConnector поток идет в обратном порядке. Вы можете прочитать больше о концепции и архитектуре: docs.confluent.io/current/connect/concepts.html

Bartosz Wardziński 06.03.2019 23:47

@Novemberland автоматически публикует сообщение в тему -- Да. Когда вы return records в своем коде, внутренний код платформы Connect в конечном итоге создаст Producer и отправит его в тему, которая передается в параметр SourceRecord.

OneCricketeer 08.03.2019 17:56

Другие вопросы по теме