Zookeeper模式安装Kafka(含常规、容器两种安装方式)

一、#创作灵感#

公司使用Kafka的软件项目较多,故写技术笔记巩固知识要点

二、软件环境

特别说明

**-**Docker Desktop仅仅是Windows下镜像用,如有能爬楼的服务器可不安装此软件

  • 本文以单机模式为例

三、常规方式安装

非容器化Zookeeper Mode(模式)安装

1、下载zookeeper

参见上面的软件环境章节的下载地址

2、修改zookeeper配置

javascript 复制代码
# 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

TypeScript 复制代码
##### 主要配置如下
# 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(一体化)方式

- 下载镜像

下载一体化官方镜像

bash 复制代码
$ docker pull confluentinc/cp-kafka:5.5.0

- dockerfile

dockerfile以开源Confluent Kafka为基顾打一个定制化的镜像

Swift 复制代码
# 使用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"]

- 使用镜像启动容器

bash 复制代码
# 假设打好的镜像id是fe7e6a65afa5
docker run \
--name=cp-kafka \
-p 2181:2181 \
-p 9092:9092 \
-p 19092:19092 \
-d fe7e6a65afa5

2、容器启动Kafka-外置zk

- 下载镜像

下载Zookeeper和Kafka两个镜像

bash 复制代码
$ docker pull wurstmeister/zookeeper:3.9.3
$ docker pull wurstmeister/kafka:3.9.0

- docker-compose.yml

docker-compose编排zookeeper和kafka两个镜像

Swift 复制代码
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启动容器

bash 复制代码
docker-compose up -d

五、要点总结

  • Zookeeper Mode使用的配置是$KFAKA_HOME/config/server.properties

  • Kraft Mode使用的配置是$KFAKA_HOME/config/kraft/server.properties

  • Kraft Mode启动见作者的文章:Kraft模式安装Kafka

相关推荐
2603_9547083133 分钟前
协调控制柜在微电网中的核心地位:数据枢纽、控制核心、安全屏障
分布式·安全·架构·能源·需求分析
AI服务老曹1 小时前
深度解析企业级高并发视频云架构:基于 Docker 与 GB28181/RTSP 协议栈的边缘计算平台(附源码交付实践)
docker·架构·音视频
淡漠的蓝精灵1 小时前
Pulsar 入门:云原生分布式消息流平台
分布式·其他·云原生
斯普润布特1 小时前
StreamX(StreamPark 2.1.7) 更改人大金仓KES数据存储-Docker 版
docker·flink·iot
Benszen2 小时前
docker架构
docker·容器·架构
蜀道山老天师2 小时前
Docker 三大核心组件详解:镜像、容器、仓库(附分层原理 + 示例)
运维·docker·容器
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
docker重新加载docer-compose.yml文件(nginx配置)
nginx·docker·eureka
r-t-H2 小时前
从零开始搭建CDH-第十四章
spark·kafka·centos·cloudera
sbjdhjd2 小时前
03(中)| K8s控制器:DaemonSet+Job+CronJob 逐行解析与生产落地
运维·笔记·docker·云原生·容器·kubernetes·开源
ai生成式引擎优化技术3 小时前
DLOS Kernel v1.0:面向分布式AI任务执行与Agent调度的统一运行时内核
人工智能·分布式