برای راهاندازی سریع Kafka و Zookeeper با Docker Compose، باید یک فایل docker-compose.yml ایجاد کنیم. این فایل شامل تعریف سرویسها، پورتها و تنظیمات محیطی است.
نمونه فایل docker-compose.yml:
version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:latest
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
توضیح بخشهای فایل:
- version: نسخه فرمت Docker Compose که استفاده میکنیم.
- services: تعریف سرویسهایی که Compose مدیریت میکند (Zookeeper و Kafka).
- image: تصویر Docker برای هر سرویس.
- container_name: نام کانتینر برای شناسایی راحتتر.
- ports: نگاشت پورتهای محلی به پورتهای کانتینر برای دسترسی به سرویس.
- environment: متغیرهای محیطی برای تنظیم رفتار سرویسها:
- ZOOKEEPER_CLIENT_PORT: پورت Zookeeper
- ZOOKEEPER_TICK_TIME: زمانبندی داخلی Zookeeper
- KAFKA_BROKER_ID: شناسه Broker
- KAFKA_ZOOKEEPER_CONNECT: اتصال Kafka به Zookeeper
- KAFKA_ADVERTISED_LISTENERS: آدرس تبلیغ شده برای اتصال Producer و Consumer
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: تعداد تکثیر Topicهای داخلی Kafka
- depends_on: مشخص میکند که Kafka قبل از شروع باید منتظر Zookeeper باشد.
با این فایل، تنها با اجرای دستور docker-compose up
میتوان محیط Kafka را به صورت محلی راهاندازی کرد و آماده تست و توسعه شد.