Есть ли способ передать или получить доступ к ключу сообщения из раздела join
в соединении Kafka Stream DSL?
У меня сейчас что-то вроде этого:
KStream<String, GenericRecord> completedEventsStream = inputStartKStream.
join(
inputEndKStream,
(leftValue, rightValue) -> customLambda((Record) leftValue, (Record) rightValue),
JoinWindows.of(windowDuration),
Joined.with(stringSerde, genericAvroSerde, genericAvroSerde)
);
Однако записи leftValue
и rightValue
, переданные в customLambda
, не имеют доступа к ключу сообщения kafka, потому что это отдельная строка. Единственный контент, который у них есть, - это само сообщение, а не ключ.
Есть ли способ получить доступ к ключу внутри лямбда-соединения? Одна вещь, которую я мог бы сделать, это просто добавить ключ сообщения как часть самого сообщения и получить к нему доступ как к обычному полю, но мне было интересно, если инфраструктура предоставляет способ прямого доступа к нему?