Использование увеличения числа не очень подходит для Jet, потому что это распределенная система. Он работает с разделенным потоком, и каждый раздел потока должен быть независимым. Вам нужно будет направить все элементы через непараллельный процессор.
Вы можете использовать UUID
или FlakeIdGenerator
Hazelcast в качестве ключа, но если задание перезапускает и повторно обрабатывает тему Kafka со смещением со снимком, для тех же элементов будет назначен другой ключ, и он будет присутствовать дважды в целевая карта.
Если вы хотите иметь каждый элемент на карте, вы можете использовать в качестве ключа комбинацию топики + partitionId + смещения Кафки:
p.drawFrom(KafkaSources.kafka(
props(...),
record -> Util.entry(
Tuple3.tuple3(record.topic(), record.partition(), record.offset()),
record.value()),
KAFKA_TOPIC))
Вы можете опустить тему, если у вас есть только одна тема.