Kafka学习篇1:Docker安装Kafka(单机默认参数版,依赖于Zookeeper)
Posted ToneyMa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka学习篇1:Docker安装Kafka(单机默认参数版,依赖于Zookeeper)相关的知识,希望对你有一定的参考价值。
注:本文仅适用于有Docker容器使用基础、Linux命令基础的编程人员,请确保Linux中已经安装了Docker。
Step1:创建Docker容器网络
由于Kafka在2.8.0版本以前,强依赖于Zookeeper,所以我们需要创建一个Docker容器网络以用于Kafka容器和Zookeeper容器的互通。
注:本文使用的是CentOS7系统作为虚拟环境,并确保登录的账号拥有足够的权限。
执行以下命令,即可创建一个Docker网络:
docker network create --driver bridge --subnet 172.0.0.0/16 toneyma_network
以上命令解释为:创建一个名为"toneyma_network",地址池为"172.0.0.0/16"的容器网络。
172.0.0.0 #地址池
16 #子网掩码(用于划分网段)
toneyma_network #名称(随便起)
Step2:拉取Zookeeper容器并启动
本文中,直接使用VMware提供的最新版(3.8.1)的Zookeeper容器。
注:在DockerHub提供的信息中,bitnami版本即为VMware提供的版本。
执行以下命令,获取最新的Zookeeper容器:
docker pull bitnami/zookeeper:latest
执行以下命令,启动Zookeeper容器:
docker run -d --name zookeeper-server \\
--network toneyma_network \\
-p 2181:2181 \\
-e ALLOW_ANONYMOUS_LOGIN=yes \\
bitnami/zookeeper:latest
以上命令解释为:启动"bitnami/zookeeper:latest"容器,该容器命名为"zookeeper-server",并使用名为"toneyma_network"的容器网络。
参数:
--name zookeeper-server #指定容器名称为"zookeeper-server"
--network toneyma_network #指定容器网络为"toneyma_network"
-p 用来访问的端口号:2181 #端口映射(格式为 外部访问用的端口号:容器内应用的端口号 外部访问用的端口号不能在本机被占用,容器内应用使用的端口号需要从DockerHub中查询,或者是官方默认端口号)
-e ALLOW_ANONYMOUS_LOGIN=yes #是否允许接受来自未经身份验证的用户的连接。(默认为no,所以这里要改为yes,方便本地连接)
其他参数请在以下链接中查询:bitnami/zookeeper - Docker Image | Docker Hubhttps://hub.docker.com/r/bitnami/zookeeper
Step3:拉取Kafka容器并依赖Zookeeper启动
本文中,直接使用VMware提供的最新版(3.2.3)的Kafka容器。
执行以下命令,获取最新的Kafka容器:
docker pull bitnami/kafka:latest
执行以下命令,启动Kafka,并依赖刚刚启动的Zookeeper:
docker run -d --name kafka-server \\
--network toneyma_network \\
-p 9092:9092 \\
-e ALLOW_PLAINTEXT_LISTENER=yes \\
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \\
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
bitnami/kafka:latest
以上命令解释为:启动"bitnami/kafka:latest"容器,该容器命名为"kafka-server",并使用名为"toneyma_network"的容器网络。
参数:
--name kafka-server #指定容器名称为"kafka-server"
--network toneyma_network #指定容器网络为"toneyma_network"
-p 用来访问的端口号:2181 #端口映射(格式为 外部访问用的端口号:容器内应用的端口号 外部访问用的端口号不能在本机被占用,容器内应用使用的端口号需要从DockerHub中查询,或者是官方默认端口号)
-e ALLOW_PLAINTEXT_LISTENER=yes #是否开启PLAINTEXT监听器(默认为no,需要修改为yes)
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 #指定Zookeeper地址,格式为:容器名称:端口地址(容器间的通信需要在同一容器网络下,也可以直接使用 IP:端口 的格式)-e KAFKA_CFG_LISTENERS=PLAINTEXT://<addr>:<port> #定义kafka的服务监听地址,addr可以为空,或者0.0.0.0,表示kafka服务会监听在指定地址。(如果不配置,可能会导致容器网络外的主机(包括宿主机)无法访问Kafka,只有容器网络中的各个容器能访问,具体有待验证)
其他参数请在以下链接中查询:bitnami/kafka - Docker Image | Docker Hubhttps://hub.docker.com/r/bitnami/kafka
至此,Kafka的安装和启动已经完成。
学习笔记Kafka—— Kafka安装配置—— Kafka单代理及常用操作
一、Linux环境准备
- Centos7, 1 CPU , 2G Memory ,20G Disk , Virtual System
- JDK
- Zookeeper
二、Kafka 安装
-
下载Kafka安装包
官网:http://kafka.apache.org/downloads -
解压安装包 :
tar -zxvf kafka_2.11-2.3.1.tgz -C /opt/
-
修改配置文件
进入kafka安装的config目录下:cd /opt/kafka_2.11-2.3.1/config
修改server.properties文件:
三、Kafka常用操作
3.1、Kafka 启动与关闭
启动
(注意:在启动kafka之前要启动zookeeper服务及zookeeper的客户)
进入kafka安装目录下,执行:
bin/kafka-server-start.sh config/server.properties
启动完成
(新建会话,在Zookeeper目录下执行:bin/zkCli.sh -server node110:2181
)
3.2、Kafka Producer(生产者)
(记得先启动kafka)
- Producer创建Topic(建立HelloWorld话题)
(在kafka的目录下执行)
bin/kafka-console-producer.sh --broker-list node110:9092 --topic HelloWorld
启动完成
3.3、Kafka Consumer(消费者)
- Consumer读取Topic(消费HelloWorld话题)
(在kafka的目录下执行)
bin/kafka-console-consumer.sh --bootstrap-server node110:9092 --topic HelloWorld --from-beginning
启动完成
(根据末尾的参数不同,读取到的结果信息数也不同)
以上是关于Kafka学习篇1:Docker安装Kafka(单机默认参数版,依赖于Zookeeper)的主要内容,如果未能解决你的问题,请参考以下文章
学习笔记Kafka—— Kafka安装配置—— Kafka单代理及常用操作