هنگام اجرای Kafka با Docker، چندین متغیر محیطی (Environment Variables) وجود دارد که رفتار Kafka و ارتباط آن با Zookeeper و شبکه را کنترل میکنند. آشنایی با این متغیرها برای پیکربندی صحیح سیستم ضروری است.
۱. تنظیمات Zookeeper
- ZOOKEEPER_CLIENT_PORT: پورت اتصال Client به Zookeeper (معمولاً 2181).
- ZOOKEEPER_TICK_TIME: زمانبندی داخلی Zookeeper به میلیثانیه (تأثیر بر heartbeat و timeoutها).
۲. تنظیمات Kafka Broker
- KAFKA_BROKER_ID: شناسه یکتای هر Broker در کلاستر Kafka.
- KAFKA_ZOOKEEPER_CONNECT: آدرس اتصال Kafka به Zookeeper (
zookeeper:2181
در Docker Compose). - KAFKA_ADVERTISED_LISTENERS: آدرس و پورتی که Producer و Consumer برای اتصال به Broker استفاده میکنند، مثلاً
PLAINTEXT://localhost:9092
. - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: تعیین نوع پروتکل برای Listenerها (معمولاً PLAINTEXT یا SSL).
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: تعداد Replication Topicهای داخلی Kafka (معمولاً 1 در محیط توسعه).
- KAFKA_LOG_DIRS: مسیر ذخیرهسازی دادهها داخل کانتینر.
۳. سایر تنظیمات مهم
- KAFKA_AUTO_CREATE_TOPICS_ENABLE: مشخص میکند که آیا Kafka به صورت خودکار Topic جدید بسازد یا خیر.
- KAFKA_NUM_PARTITIONS: تعداد پیشفرض Partition برای Topicهای جدید.
- KAFKA_DELETE_TOPIC_ENABLE: امکان حذف Topicها را فعال یا غیرفعال میکند.
با تنظیم صحیح این متغیرها، میتوان رفتار Kafka را در Docker کنترل کرد و محیط توسعه یا تستی مناسب ایجاد نمود.