2.3 KiB
2.3 KiB
ZooKeeper
Apache ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Features
- Configuration Management: Centralized configuration management
- Naming Service: Distributed naming service
- Synchronization: Distributed synchronization primitives
- Group Services: Group membership and leader election
- High Availability: Built-in replication and failover
Quick Start
Start ZooKeeper:
docker compose up -d
Configuration
Environment Variables
ZOOKEEPER_VERSION: ZooKeeper version (default:3.9.3)ZOOKEEPER_CLIENT_PORT_OVERRIDE: Client port (default:2181)ZOOKEEPER_ADMIN_PORT_OVERRIDE: Admin server port (default:8080)ZOO_TICK_TIME: Tick time in milliseconds (default:2000)ZOO_INIT_LIMIT: Init limit (default:10)ZOO_SYNC_LIMIT: Sync limit (default:5)ZOO_MAX_CLIENT_CNXNS: Maximum client connections (default:60)ZOO_4LW_COMMANDS_WHITELIST: Four letter words commands whitelist (default:srvr,mntr,ruok)
Access
- Client Port:
localhost:2181 - Admin Server: http://localhost:8080
Usage
Connect to ZooKeeper
docker compose exec zookeeper zkCli.sh
Check Status
echo ruok | nc localhost 2181
Response should be imok if ZooKeeper is running properly.
Get Server Stats
echo stat | nc localhost 2181
Four Letter Words Commands
ZooKeeper supports a set of commands that are exactly four letters:
ruok: Tests if server is runningstat: Lists server statistics and clientssrvr: Lists server informationmntr: Lists server metricsconf: Shows server configuration
Data Storage
ZooKeeper data is stored in three volumes:
zookeeper_data: Main data directoryzookeeper_datalog: Transaction logszookeeper_logs: Application logs
Resources
- Resource Limits: 1 CPU, 1G RAM
- Resource Reservations: 0.25 CPU, 512M RAM
Production Considerations
For production deployments:
- Use an ensemble (cluster) of at least 3 nodes
- Configure proper disk I/O for transaction logs
- Monitor heap memory usage
- Set up proper backup strategies
- Configure firewall rules for all required ports