一、#创作灵感#
公司使用Kafka的软件项目较多,故写技术条记巩固知识要点
二、软件情况
- Kafka 3.9.0 官方下载地点:Kafka 3.9.0
- ZooKeeper 3.9.3 官方下载地点:ZooKeeper 3.9.3
- Docker Desktop 4.37 容器图形化工具 官方下载地点:Docker Desktop 4.37
特别说明
- Docker Desktop仅仅是Windows下镜像用,如有能爬楼的服务器可不安装此软件
- 本文以单机模式为例
三、通例方式安装
非容器化Zookeeper Mode(模式)安装
1、下载zookeeper
参见上面的软件情况章节的下载地点
2、修改zookeeper设置
- # zk临时数据目录,根据实际调整
- dataDir=/tmp/zookeeper
- # 管理端口,如果一台机器只启一个可不配置,启多个要配置每个zk的管理端口要不同
- admin.serverPort=8181
复制代码 3、启动内置/外置zookeeper(二选一)
- 启动内置zookeeper
- # Start the ZooKeeper service
- $ bin/zookeeper-server-start.sh config/zookeeper.properties
复制代码 - 启动外置zookeeper
- # Start the ZooKeeper service
- $ bin/zkServer.sh start
复制代码 5、下载kafka
下载地点见:软件情况章节
6、修改(zookeeper模式启动)Kafka设置
vi $KAFKA_HOME/config/server.properties
- ##### 主要配置如下
- # ip 端口,根据实际修改
- listeners=PLAINTEXT://10.130.***.**:19092
- # 日志文件目录
- log.dirs=/tmp/kafka-logs
- # zookeeper地址
- zookeeper.connect=localhost:2181
复制代码 7、Zookeeper模式启动Kafka
- # Start the Kafka broker service
- $ bin/kafka-server-start.sh config/server.properties
复制代码
四、容器方式安装
容器化Zookeeper Mode(模式)安装
内置zookeeper和外置zookeeper二选一
1、容器启动Kafka-内置zk(一体化)方式
- 下载镜像
下载一体化官方镜像
- $ docker pull confluentinc/cp-kafka:5.5.0
复制代码 - dockerfile
dockerfile以开源Confluent Kafka为基顾打一个定制化的镜像
- # 使用Kafka官方镜像
- FROM confluentinc/cp-kafka:5.5.0
-
- # 设置环境变量以启用内置的Zookeeper实例
- ENV KAFKA_ZOOKEEPER_CONNECT=localhost:2181
- ENV KAFKA_BROKER_ID=1
- ENV KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
- ENV KAFKA_LISTENERS=INTERNAL://:9092,EXTERNAL://:19092
- ENV KAFKA_ADVERTISED_LISTENERS=INTERNAL://kafka:9092,EXTERNAL://localhost:19092
- ENV KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL
- ENV KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
-
- # 复制Kafka配置文件
- COPY ./config/ /etc/kafka/config/
-
- # 复制Zookeeper配置文件
- COPY ./zookeeper.properties /etc/kafka/zookeeper.properties
-
- # 复制Kafka配置文件
- COPY ./server.properties /etc/kafka/server.properties
-
- # 设置容器工作目录
- WORKDIR /etc/kafka
-
- # 暴露Kafka和Zookeeper的端口
- EXPOSE 2181 9092 19092
-
- # 启动Kafka和Zookeeper
- CMD ["start-kafka.sh", "--zookeeper"]
复制代码 - 使用镜像启动容器
- # 假设打好的镜像id是fe7e6a65afa5
- docker run \
- --name=cp-kafka \
- -p 2181:2181 \
- -p 9092:9092 \
- -p 19092:19092 \
- -d fe7e6a65afa5
复制代码 2、容器启动Kafka-外置zk
- 下载镜像
下载Zookeeper和Kafka两个镜像
- $ docker pull wurstmeister/zookeeper:3.9.3
- $ docker pull wurstmeister/kafka:3.9.0
复制代码 - docker-compose.yml
docker-compose编排zookeeper和kafka两个镜像
- version: '3'
- services:
- zookeeper:
- image: wurstmeister/zookeeper
- ports:
- - "2181:2181"
-
- kafka:
- image: wurstmeister/kafka
- ports:
- - "9092:9092"
- environment:
- KAFKA_ADVERTISED_HOST_NAME: localhost
- KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
复制代码 说明:
这将会启动一个Zookeeper和Kafka的容器实例。确保你已经安装了Docker和Docker Compose。这个设置适用于开发和测试情况,不适合生产情况,因为它将Kafka和Zookeeper袒露到同一个宿主机的端口上,可能会有安全问题
- 使用docker-compose启动容器
五、要点总结
- Zookeeper Mode使用的设置是$KFAKA_HOME/config/server.properties
- Kraft Mode使用的设置是$KFAKA_HOME/config/kraft/server.properties
- Kraft Mode启动见作者的文章:Kraft模式安装Kafka
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |