Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。
kafka介绍-名词解释:
producer
:发布消息的对象称之为主题生产者(
Kafka topic producer
);
topic
:
Kafka
将消息分门别类,每一类的消息称之为一个主题(
Topic
);
consumer
:订阅消息并处理发布的消息的对象称之为主题消费者(
consumers
);
broker
:已发布的消息保存在一组服务器中,称之为
Kafka
集群。集群中的每一个服务器都是一个代理(
Broker
)。 消费者可以订阅一个或多个主题(
topic
),并从
Broker
拉数据,从而消费这些已发布的消息;
1. Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper
1.1 Docker安装zookeeper
拉取镜像:
docker pull zookeeper:3.4.14
创建容器:
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14
1.2 Docker安装kafka
拉取镜像
docker pull wurstmeister/kafka:2.12-2.3.1
创建容器
docker run -d \
--name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.200.130 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.200.130:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.200.130:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host \
wurstmeister/kafka:2.12-2.3.1
参数解释:
-d 后台运行
--name kafka 容器名称
--env KAFKA_ADVERTISED_HOST_NAME=192.168.200.130 虚拟机的IP地址
--env KAFKA_ZOOKEEPER_CONNECT=192.168.200.130:2181 zookeeper的地址
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.200.130:9092 对外监听9092的端口
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 参数,照写就行
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" 参数,照写就行
--net=host 直接使用容器宿主机的网络命名空间, 即没有独立的网络环境。它使用宿主机的ip和端口。就是没有 -p 的端口映射,直接用的就是虚拟机的端口,如果虚拟机是远程云服务器,则必须使用 -p 9092:9092
wurstmeister/kafka:2.12-2.3.1 镜像名称