创建docker-compose.yaml
version: \"3.9\" services: kafka: image: apache/kafka:3.9.0 container_name: kafka hostname: kafka ports: - 9092:9092 - 9094:9094 environment: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9094,CONTROLLER://localhost:9093,PLAINTEXT_CONTAINER://kafka:9092 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094,PLAINTEXT_CONTAINER://kafka:9092 KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_CONTAINER:PLAINTEXT KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_NUM_PARTITIONS: 3 KAFKA_LOG_DIRS: /var/lib/kafka/data volumes: - ./data/kafka/data:/var/lib/kafka/data
运行docker-compose.yaml
docker compose -f ./docker-compose.yaml up -d
测试kafka
docker exec -it kafka bash
/opt/kafka/bin/kafka-topics.sh --bootstrap-server kafka:9092 --create --topic topic-test
/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server kafka:9092 --topic topic-test
docker exec -it kafka bash
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic topic-test --from-beginning