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