mac 使用 docker 安装单机版 kafka, 亲测有效

简介: mac 使用 docker 安装单机版 kafka, 亲测有效

在这里插入图片描述

这篇文章极其适用于只听说过 kafka, 没有实际用过, 然后还心痒难耐的同学

docker-compose 安装 kafka

没有 docker 的同学网上找篇博客安装

单机版 kafka 安装使用 wurstmeister/kafka-docker 的镜像

这里假设你已经有了 docker 以及 docker-compose 的环境

报错:Killed: 9

mac 上 docker 安装成功后是自带 docker-compose 的, 但是在执行 docker-compose 相关命令时, 可能会报错 Killed: 9

包括我在内也是, 解决方式如下

curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

准备步骤

创建日志映射和脚本文件存储目录

# 日志存放目录
mkdir -p ~/data/docker/kafka/logs
# .yml 文件存放目录
mkdir -p ~/data/docker/compose/kafka
# 文件写入读取全新啊
chmod 777 ~/data

在~/data/docker/compose/kafka 文件夹中创建 docker-compose-single-wurstmeister-kafka.yml 文件

编写脚本

由于 kafka 依赖 zk, 所以在脚本里也会把 zk 的镜像包一起拉下来

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: "zk-kafka"
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: "kafka-single"
    ports:
      - "9092:9092"
    environment:
      # client 要访问的 broker 地址
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      # 通过端口连接 zookeeper
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      # 每个容器就是一个 broker,设置其对应的 ID
      KAFKA_BROKER_ID: 0
      # 外部网络只能获取到容器名称,在内外网络隔离情况下
      # 通过名称是无法成功访问 kafka 的
      # 因此需要通过绑定这个监听器能够让外部获取到的是 IP
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
      # kafka 监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      # Kafka默认使用-Xmx1G -Xms1G的JVM内存配置,由于服务器小,调整下启动配置
      # 这个看自己的现状做调整,如果资源充足,可以不用配置这个
      KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M"
      # 设置 kafka 日志位置
      KAFKA_LOG_DIRS: "/kafka/logs"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # 挂载 kafka 日志
      # :前面的路径是你电脑上路径 后面是kafka容器日志路径
      - ~/data/docker/kafka/logs:/kafka/logs

执行脚本

在终端执行以下命令创建容器并后台运行

docker-compose -f ~/data/docker/compose/kafka/docker-compose-single-wurstmeister-kafka.yml up -d

出现下方提示信息时, 即为创建容器成功

Creating zk-kafka
Creating kafka-single

测试启动成功

使用 docker ps 查看容器是否运行, 在这里推荐一款可视化工具 Portainer 可视化

可以看到 kafka-single zk-kafka 两个容器都已经处于 running 状态了, 安装成功了; 接下来创建 topic 测试消息生产、消费

创建 topic

进入 kakfa 容器内部

docker exec -it kafka-single bash

执行命令创建 topic

$KAFKA_HOME/bin/kafka-topics.sh --create --topic topic-test --zookeeper zk-kafka:2181 --replication-factor 1 --partitions 1

出现如下提示即为创建成功

Created topic topic-test.

发送消息

topic 创建成功后, 直接执行命令即可

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test

输入 "午饭加鸡腿, 奶茶最大杯", 然后回车, 接下来去消费方消费消息

消费消息

新开一个窗口, 同样进入 kakfa 容器内部

docker exec -it kafka-single bash

执行命令消费 topic

$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server kafka-single:9092 --from-beginning --topic topic-test

终端中出现 "午饭加鸡腿, 奶茶最大杯" 即为 成功消费

再启动报错

当第一次启动成功后, 停止容器后再启动 kafka 会失败, 通过 Portainer kafka 日志看出

将 ~/data/docker/kafka/logs/meta.properties 文件删除即可

The Cluster ID doesn't match stored clusterId
相关文章
|
3月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
382 0
|
8月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
723 10
|
11月前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
1150 28
|
消息中间件 Ubuntu Java
在Ubuntu 18.04上安装Apache Kafka的方法
在Ubuntu 18.04上安装Apache Kafka的方法
428 0
|
11月前
|
消息中间件 Kafka Docker
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
1457 2
|
应用服务中间件 nginx Docker
单机编排工具之docker-compose快速入门使用
这篇文章是关于如何使用docker-compose进行单机编排的快速入门指南,包括了镜像准备、docker-compose安装、使用教程以及验证服务生效的步骤。
277 2
单机编排工具之docker-compose快速入门使用
|
消息中间件 NoSQL Kafka
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
Flink-10 Flink Java 3分钟上手 Docker容器化部署 JobManager TaskManager Kafka Redis Dockerfile docker-compose
400 4
|
消息中间件 Java Linux
linux 之centos7安装kafka;;;;;待补充,未完成
linux 之centos7安装kafka;;;;;待补充,未完成
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
消息中间件 测试技术 RocketMQ
docker部署RockerMQ单机测试环境
docker部署RockerMQ单机测试环境