Ограничения имени узла в zookeeper - PullRequest
0 голосов
/ 01 апреля 2019

Есть ли документация об ограничениях имен узлов zookeeper? Я не могу найти ничего в официальной документации по этому поводу. В частности, я хочу знать:

  1. Какие символы разрешены?
  2. Могу ли я использовать любой символ из UTF-8 (например, японские символы)?
  3. Каков максимальный лимит символов / байтов (если есть) для имени узла?

1 Ответ

0 голосов
/ 13 апреля 2019

Для 1, 2 : Любой символ Юникода может использоваться в пути с учетом следующих ограничений :

  • Нулевой символ(\u0000) не может быть частью имени пути.(Это вызывает проблемы с привязкой C.)

  • Следующие символы нельзя использовать, поскольку они плохо отображаются или отображаются неправильно: \u0001 - \u001F и \u007F - \u009F.

  • Следующие символы недопустимы: \ud800 - uF8FF, \uFFF0 - uFFFF.

  • Символ . можно использовать какчасть другого имени, но . и .. не могут использоваться в одиночку для указания узла вдоль пути, потому что ZooKeeper не использует относительные пути.Следующие значения будут недействительными: /a/b/./c или /a/b/../c.

  • Токен zookeeper зарезервирован.

PS: источникcode: PathUtils.validatePath ()

Для 3 : На самом деле нет никаких ограничений на длину имени в самом ZK, но рекомендуется не использоватьслишком большое имя (например, ZK сохраняет целые данные в памяти для эффективности)

...