kafka之docker环境下的搭建

kafka简单介绍

Kafka 是 LinkedIn 开源的一种高吞吐量的分布式发布订阅消息系统,kafka的诞生就是为了处理海量日志数据,所以kafka处理消息的效率非常高,即使是非常普通的硬件也可以支持每秒数百万的消息。
kafka 天然支持集群负载均衡,使用 zookeeper 进行分布式协调管理。不支持事务,有一定概率丢失消息。
kafka 的特点,决定了使用场景:日志中间件。

环境说明

  • 宿主机:ubuntu18.04 LST
  • Docker version 17.12.1-ce, build 7390fc6

搭建步骤

1.镜像准备

  • zookeeker: docker pull zookeeper:latest
  • kafka: docker pull wurstmeister/kafka:latest

2.创建并启动容器

需要运行两个容器,分别为zookeeper,kafka

2.1运行zookeeper

1
docker run --name=zookeeper -p 2181:2181 -d wurstmeister/zookeeper

2.2运行kafka

1
2
3
4
5
6
7
docker run --name=kafka \
--link zookeeper:zookeeper \
-p 9092:9092 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_HOST_NAME=<kafka容器 所在宿主机的ip> \
-e KAFKA_ADVERTISED_PORT=9092 \
wurstmeister/kafka

测试

1.topic的创建

进入Kafka容器内,命令如下:

1
docker exec -it kafka bash

cd至kafka默认目录/opt/kafka,运行如下命令创建一个名为test的topic:

1
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test

执行以下命令可查看当前的topic列表

1
bin/kafka-topics.sh --list --zookeeper zookeeper:2181

运行一个消息生产者,指定 topic 为刚刚创建的 test ,输入一些测试消息。

1
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

运行一个消息消费者,同样指定 topic 为 test,可以接收到生产者发送的消息。

1
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
-------------本文结束感谢您的阅读-------------
0%