kafka in docker
这货基本上已经成为消息中间件的霸主,每秒支持数百万的消息吞吐。其大量用于日志中间件或实时流计算,支持集群负载均衡,为Apache顶级项目。
以下为借助docker快速搭建kafka单机测试环境:test kafka in docker。
kafka单机部署
zookeeper
1 2 3 |
docker run -d --name=cpplaZookeeper -p x.x.x.x:2181:2181 \ -v /etc/localtime:/etc/localtime \ zookeeper:latest |
kafka
1 2 3 4 5 6 7 |
docker run -d --name cpplaKafka -p x.x.x.x:9092:9092 \ --link cpplaZookeeper:zookeeper \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=x.x.x.x \ --env KAFKA_ADVERTISED_PORT=9092 \ -v /etc/localtime:/etc/localtime \ wurstmeister/kafka:latest |
注:KAFKA_ADVERTISED_HOST_NAME要设置为宿主机的IP地址,多IP服务器中设置最好为主出口IP【这里是在多服务器设置遇到的坑】
kafka消息测试
- 创建主题:
1bin/kafka-topics.sh -create -zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic cppla - 查看主题:
1bin/kafka-topics.sh --list --zookeeper zookeeper:2181 - 生产者:
1bin/kafka-console-producer.sh --broker-list localhost:9092 --topic cppla - 消费者:
1bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic cppla --from-beginning