Kafka: Topi c список несоответствий между zookeeper и bootstrap -сервером - PullRequest
0 голосов
/ 19 июня 2020

В паре моих кластеров я вижу несоответствие между списком тем, возвращаемым zookeeper, по сравнению с брокером, т.е. следующие команды возвращают разные (меньше в случае брокера) результаты

kafka-topics.sh --zookeeper $zookeeper --list
kafka-topics.sh --bootstrap-server $broker --command-config $clientProperties --list

Я видел такое поведение с несколькими версиями клиентов, что заставляет меня предположить, что проблема на стороне сервера, но я понятия не имею, в чем причина root и как ее исправить.

Это вызывает у меня проблему, потому что я использую некоторый код, который использует брокеров для операций GET, таких как перечисление тем, и zookeeper для операций SET (создание / обновление тем). Если брокер не возвращает topi c в листинге, тогда путь кода приводит к действию CREATE против zookeeper, которое будет отклонено (оно завершится ошибкой). К сожалению, я не контролирую код, поэтому я не могу применить там исправление.

Тем не менее, наверняка список тем в zookeeper должен совпадать со списком в брокере?

Я использую Kafka (Amazon MSK) версии 2.2.1

1 Ответ

0 голосов
/ 26 июня 2020

Спасибо за предложения в этом посте. Вот объяснение и решение:

Команда «kafka-themes. sh --zookeeper» и «kafka-themes. sh - bootstrap -server» возвращает два разных вывода, потому что последнее учитывает настроенные списки ACL, которые в данном случае предотвращают доступ к метаданным topi c. Следовательно, команда через zookeeper предоставляет полный список тем, тогда как команда через брокера предоставляет только темы, для которых не настроены ACL.

Чтобы вторая команда работала должным образом, вам необходимо: явно добавить в список ACL затронутых тем доступ к операции «DESCRIBE»

(^^ с уважением к AWS Поддержка для выяснения этого)

...