需要提前安装好docker,以及docker-compose,
拉取laradock git clone https://github.com/Laradock/laradock.git
本人使用的laradock构建,使用其他的参考相应文档
修改laradock的docker-compose.yml在文件末尾添加
zookeeper:
image: wurstmeister/zookeeper
restart: always
ports:
- 2181:2181
kafka:
image: wurstmeister/kafka
ports:
- 9092:9092
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
restart: always
volumes:
- ./docker.sock:/var/run/docker.sock
注: zookeeper需要查看docker-compose配置文件中是否存在,如果存在不必添加zookeeper,也可以 修改laradock中的zookeeper配置。
restart: always配置可以注释掉,它表示启动docker时容器自动启动。
* kafka依赖zookeeper服务*
执行:docker-compose up -d zookeeper kafka (可单独启动服务)
也可在docker中手动启动
-
执行docker-compose exec kafka bash
-
创建一个名称为test的topic
kafka-topics.sh --create --topic test --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1
-
查看刚刚创建的topic信息:
kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic test
-
打开生产者发送若干条消息:
kafka-console-producer.sh --topic=test --broker-list kafka:9092
-
消费者接收消息
重新打开终端输入 docker-compose exec kafka bashkafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic test
从图中看出 在生产者端输入信息,消费者端就会显示相应的信息。如果测试通过说明kafka服务已经安装成功了,我们就可以在项目中使用kafka服务了



