Как создать уникальный sequenceId для вашего приложения в нескольких экземплярах в KafkaStreams? - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу сгенерировать уникальный упорядоченный идентификатор для того, что мы потребляем из топи c, и он должен быть уникальным для нескольких экземпляров. (Не uuid)

1 Ответ

0 голосов
/ 03 мая 2020

Не знаю, почему вы не хотите использовать UUID. Но вы можете использовать комбинацию смещения и номера раздела для вычисления уникального идентификатора. Что-то вроде:

// you need to know upfront how many partitions the input topis has
private final static int NUMBER_OF_PARTITIONS = ...

// within `Transformer#transform()` using `KStream#transform()`
// (also consider to use #transformValues() instead).

// `context` is given via `init()`

long id = context.offset() * NUMBER_OF_PARTITIONS + context.partition();
...