Понимание распределения идентификаторов схемы в реестре схем Confluent - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь понять, как глобально уникальные UUID генерируются для схем в реестре схем, но не могу понять следующий текст, присутствующий на этой странице.

Выделение идентификатора схемы всегдапроисходят в главном узле, и они гарантируют, что идентификаторы схемы монотонно увеличиваются.

Если вы используете основные выборы Kafka, идентификатор схемы всегда основан на последнем идентификаторе, который был записан в хранилище Kafka.Во время переизбрания мастера распределение пакетов происходит только после того, как новый мастер перехватит все записи в хранилище.

Если вы используете выборы мастера ZooKeeper, {schema.registry.zk.namespace} /Путь schema_id_counter хранит верхнюю границу текущего пакета идентификаторов, а распределение нового пакета инициируется как основным выбором, так и исчерпанием текущего пакета.Такое распределение пакетов помогает защититься от возможных сценариев зомби-мастера (например, если предыдущий мастер имел паузу GC, которая длилась дольше, чем таймаут ZooKeeper, вызывая переизбрание мастера).

Вопрос:

  • При использовании zookeeper для главных выборов, зачем хранить текущий идентификатор партии в zookeeper в отличие от основных выборов kafka?
  • Может кто-нибудь подробно объяснить, как распределяется партия при использовании выборов zookeeperработает?В частности, я не понимаю следующее:

распределение новой партии инициируется как основным выбором, так и исчерпанием текущей партии.Такое распределение пакетов помогает защититься от потенциальных сценариев зомби-мастера (например, если предыдущий мастер имел паузу GC, которая длилась дольше, чем время ожидания ZooKeeper, вызывая переизбрание мастера).

...