Вопросы для интервью: 4 сценария применения zookeeper, сколько вы знаете?

ZooKeeper

предисловие

Тема, о которой мы сейчас говорим, — это распределенные системы.После того, как интервьюер поговорил с вами о некоторых вопросах, связанных с dubbo, было подтверждено, что у вас есть некоторые базовые знания о структуре распределенных служб/RPC. Тогда он может начать говорить с вами о других вопросах, связанных с распространением.
Распределенная блокировка используется очень часто, ее можно использовать в некоторых сценариях при разработке систем Java и распределенных систем. Наиболее часто используемые распределенные блокировки реализованы на базе zookeeper.
На самом деле, если честно, задавая этот вопрос, как правило, нужно проверить, понимаете ли вы zookeeper, потому что zookeeper — это очень распространенная базовая система в распределенных системах. И что часто спрашивают, каков сценарий использования zookeeper? Посмотрите, знаете ли вы некоторые основные сценарии использования. Но на самом деле, когда смотритель зоопарка копает глубоко, естественно задавать очень глубокие вопросы.

Анализ вопросов интервью.

Грубо говоря, сценарии использования zookeeper таковы, приведу несколько простых, было бы неплохо, если бы вы могли сказать несколько:
  • Распределенная координация
  • Распределенная блокировка
  • Управление метаданными/конфигурационной информацией
  • Высокая доступность

Распределенная координация

На самом деле это очень классическое использование zookeeper.Проще говоря, это похоже на то, как ваша система A отправляет запрос в mq, а затем сообщение системы B обрабатывается после потребления. Как система А узнает результат обработки системы Б? Координация между распределенными системами может быть достигнута с помощью zookeeper. После того, как система А отправит запрос, она может зарегистрировать слушателя для значения узла в zookeeper.Как только система B закончит его обработку, измените значение этого узла в zookeeper, и система A может немедленно получить уведомление, которое является идеальное решение.

Распределенная блокировка

Возьмите каштан. Для определенных данных выполняются две последовательные операции модификации, и две машины получают запрос одновременно, но только одна машина может выполнить другую машину до ее выполнения. Тогда в это время можно использовать распределенную блокировку zookeeper.После получения запроса машина сначала получает распределенную блокировку на zookeeper, то есть может создать znode и затем выполнить операцию, затем другая машина также пытается создать что znode, получается, что я не могу создать его сам, потому что он был создан кем-то другим, поэтому я могу только ждать, пока первая машина закончит его выполнение, прежде чем выполнять его самостоятельно.

Управление метаданными/конфигурационной информацией

Zookeeper можно использовать для управления информацией о конфигурации многих систем, таких как kafka, storm и т. д. Многие распределенные системы будут использовать zookeeper для управления некоторыми метаданными и информацией о конфигурации, включая реестр dubbo, разве он также не поддерживает zookeeper?

Высокая доступность

Это должно быть очень распространенным явлением. Например, многие системы больших данных, такие как hadoop, hdfs, yarn и т. д., предпочитают разрабатывать механизм высокой доступности на основе zookeeper. То есть важный процесс обычно выполняет две основные и второстепенные роли. основной процесс зависает и тут же воспринимает это через zookeeper, переключаемся на альтернативный процесс.

Наконец

Прошу всех обратить внимание на мой паблик [Программист в погоне за ветром], в нем будут обновляться статьи, а также размещаться отсортированная информация.