SlideShare a Scribd company logo
Координация в распределенных
 системах с помощью Apache
         Zookeeper




                   Маирбек Хадиков
Координация


В распределенных системах
      не обойтись без
       координации
Координация


Система координации
    должна быть
  отказоустойчивой
Координация

      Реализовать
    синхронизацию в
распределенных системах
        сложно
Zookeeper
Распределенный


Маштабируемый


 Fault Tolerant


 Open Source
Задачи

Synchronization   Configuration
                  Maintenance




    Groups            Naming
Структура
ZNode
                  File




Watches                         Directory



     Optimistic           Atomic
      Locking            Operations
Флаги

Sequential


             Ephemeral
Sequential
 some-znode-00000001


 some-znode-00000002


 some-znode-00000003


         ...
Ephemeral


Время жизни ограниченно
    временем сессии
Гарантии
                   Sequential
                  Consistency


Single System                        Atomicity
    Image




      Timelines                 Reliability
API

create            get data



delete           get children



set data            sync
Cluster mode
Cluster mode
 Данные сохраняются в
памяти на всех серверах
Cluster mode
Лидер выбирается при старте
Cluster mode
Клиенты подключенны к
      follower'ам
Cluster mode
Все изменения проходят
     через лидера
Cluster mode
Commit после обновления
 данных на большинстве
       серверов
Group Membership
Group Membership
Группе соответствует определенный
              znode

       /


              ...


                    group
Group Membership
 Члены группы создают ephemeral
      znode внутри группы
    /


          ...


                group


                        member
Group Membership
  Если клиент недоступен znode
     автоматически удалится
   /


          ...


                group


                        member
Barier
Barier
Клиент вызывает exists+watcher


       /


             ...


                   barier
Barier
Если znode отсутствует барьер
          отпущен

      /


            ...


                  barier
Barier
Если znode существует, то ожидаем
   оповещение о его удалении

         /


              ...


                    barier
Leader Election
Leader Election

 /


     ...


           election
Leader Election
       Каждый желающий создает
       ephemeral|sequential znode

election


           node_00000001

           node_00000002

           node_00000003
Leader Election
Клиент у которого znode с наименьшим
          номером -- leader

election


           node_00000001

           node_00000002

           node_00000003
Leader Election
Остальные клиенты ставят watch и следят за
                 leader

   election


              node_00000001

              node_00000002

              node_00000003
Leader Election
 Если leader недоступен -- следующий
доступный клиент избирается лидером

election


           node_00000001

           node_00000004

           node_00000007
Lock
Lock
Для общего ресурса создается znode


    /


          ...


                 resource
Lock
       Каждый процесс создает
      ephemeral|sequential znode

resource


           lock_00000001

           lock_00000002

           lock_00000003
Lock
Процесс с наименьшим znode удерживает
                 lock

  resource


             lock_00000001

             lock_00000002

             lock_00000003
Lock
Остальные процессы ждут удаления
       предыдущей znode

resource


           lock_00000001

           lock_00000002

           lock_00000003
Lock
Для освобождения lock процессом удаляется
                 znode

    resource


               lock_00000001

               lock_00000002

               lock_00000003
Спасибо

     @mairbek

mkhadikov@gmail.com

 github.com/mairbek

More Related Content

PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Improve your security - 2018
PPTX
Development without Testers: Myth or Real Option?
PPTX
Continuous Delivery
PDF
Continuous Performance Testing
PPT
Советы для успешной автоматизации тестирования веб-приложений
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
2024 Trend Updates: What Really Works In SEO & Content Marketing
Improve your security - 2018
Development without Testers: Myth or Real Option?
Continuous Delivery
Continuous Performance Testing
Советы для успешной автоматизации тестирования веб-приложений
Ad

Zookeeper presentation