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

相关推荐
苏渡苇1 小时前
5 分钟跑起 Redis(Docker 版)
数据库·redis·缓存·docker·redis入门
深念Y3 小时前
赛米尼M02/海纳斯HiNAS系统-WiFi驱动安装教程
运维·服务器·网络·docker·nas·机顶盒·hinas
刘某的Cloud4 小时前
docker commit 封装镜像
运维·docker·容器·image
_waylau5 小时前
鸿蒙架构师修炼之道-面向对象的分布式架构
分布式·华为·架构·架构师·harmonyos·鸿蒙
古城小栈5 小时前
Docker 下配置 Pgsql 主从复制详细步骤指南
运维·docker·容器
Francek Chen6 小时前
【大数据存储与管理】NoSQL数据库:03 NoSQL与关系数据库的比较
大数据·数据库·分布式·nosql
何中应7 小时前
Docker-Compose环境配置&使用
运维·docker·容器
路飞说AI7 小时前
分布式事务最佳实践:基于kafka实现的最终一致性方案
kafka
heimeiyingwang7 小时前
【无标题】
网络·缓存·docker·性能优化·架构
牛奶咖啡138 小时前
Docker容器实践——docker部署应用系统
docker·云计算·portainer·docker容器的使用流程·docker虚拟化云桌面·nginx可视化反向代理工具·构建服务器监控探针