Skip to course content

Designing Concurrent Systems with Apache Zookeeper

Enable participants to build fault‑tolerant, highly available distributed applications using ZooKeeper fundamentals, Curator recipes, and proven concurrency design patterns.

Get Course Info

Audience: Developers, administrators, architects.

Duration: 3 days

Format: Lectures and hands‑on labs (50% lecture, 50% lab)

Overview

This course is unique in that it teaches the best practices and caveats of designing modern concurrent Big Data systems. ZooKeeper is an ideal tool to understand and practice the theory, and to reason about system performance, fault tolerance, and stability. ZooKeeper is the de‑facto standard for coordinating multiple components in distributed systems. In this class, we will learn ZooKeeper architecture, design, and implementation. Then we will go through the standard ZooKeeper design patterns and their implementation. In recent years, most of the design work with ZooKeeper is done through Curator. The curator makes the implementation of the design patterns – called recipes – much easier and more robust. We will work with Elections (such as Leader Latch and Leader Election), Locks, Barriers, and more. The course includes a balance of theory and lab work.

Objective

Enable participants to build fault‑tolerant, highly available distributed applications using ZooKeeper fundamentals, Curator recipes, and proven concurrency design patterns.

What You Will Learn

  • ZooKeeper fundamentals
  • ZooKeeper Java and C API
  • Curator and Exhibitor
  • Curator recipes: Elections, Locks, Barriers, Counters, Caches, Nodes, Queues
  • ZooKeeper internals

Course Details

Audience: Developers, administrators, architects.

Duration: 3 days

Format: Lectures and hands‑on labs (50% lecture, 50% lab)

Prerequisites:

Experience and background in software development and administration

Setup: Amazon EC2 servers will be provided for installation, administration, and lab work • SSH client • Browser • Zero Install

Detailed Outline

  • Distribute the coordination system
  • Design goals and results
  • Common coordination tasks
  • Goals and capabilities
  • Differences, pros, and cons
    • Track and react to ZooKeeper changes
    • Handling failures (network, apps)
    • Concurrency issues
    • Goals and design
    • Installation and configuration
    • Advantages and current trends
    • Elections
    • Locks
    • Barriers
    • Counters
    • Caches
    • Nodes
    • Queues
    • Centralized initialization
    • Internals
    • Administration

    Ready to Get Started?

    Contact us to learn more about this course and schedule your training.