Kafka-3.2.0-Docker 踩坑笔记

  • 安装与使用
  • 报错(各种原因容器没能启动)

Kafka-3.2.0-Docker 踩坑笔记

参考:
https://blog.csdn.net/aa2528877987/article/details/123589123
https://hub.docker.com/r/bitnami/kafka
https://blog.csdn.net/hunheidaode/article/details/121401183

备注:Docker+集群

安装与使用

  1. 安装Docker

https://blog.csdn.net/iku_whf/article/details/116357886

  1. 运行一个zookeeper
docker run -d \
--name zookeeper \
-p 2181:2181 \
-v ~/zookeeper/data:/data \
-v  ~/zookeeper/conf:/conf \
zookeeper:3.4.9
  1. 运行以下命令,启动一个kafka,(修改参数后运行即为集群)

-e 环境变量=value 的一些参数,其他见最上面的两个参考

KAFKA_BROKER_ID:brokerID,同一个集群的不能相同
KAFKA_ZOOKEEPER_CONNECT:zookeeper地址
KAFKA_LISTENERS:主动监听的port
KAFKA_ADVERTISED_LISTENERS:外部程序访问 ip+port
ALLOW_PLAINTEXT_LISTENER:允许不加密监听
KAFKA_HEAP_OPTS:JVM参数

docker run -d \
--name kafka0 \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
--net kafka_network  \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://whfc.cc:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_HEAP_OPTS="-Xms200m  -Xmx200m" \
bitnami/kafka

根据上一个稍作修改,就有了第二个

docker run -d \
--name kafka1 \
-p 9093:9092 \
-e KAFKA_BROKER_ID=1 \
--net kafka_network  \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://whfc.cc:9093 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_HEAP_OPTS="-Xms200m  -Xmx200m" \
bitnami/kafka

报错(各种原因容器没能启动)

  1. docker容器创建语句没有ALLOW_PLAINTEXT_LISTENER
    解决:加上ALLOW_PLAINTEXT_LISTENER
    报错:
[root@iZbp18y7b5jm99960ajdloZ ~]# docker start kafka2 -i
kafka 11:42:15.46
kafka 11:42:15.47 Welcome to the Bitnami kafka container
kafka 11:42:15.47 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-kafka
kafka 11:42:15.47 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-kafka/issues
kafka 11:42:15.47
kafka 11:42:15.48 INFO  ==> ** Starting Kafka setup **
kafka 11:42:15.58 ERROR ==> The KAFKA_CFG_LISTENERS environment variable does not configure a secure listener. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.
kafka 11:42:15.58 ERROR ==> The KAFKA_ZOOKEEPER_PROTOCOL environment variable does not configure a secure protocol. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.
[root@iZbp18y7b5jm99960ajdloZ ~]# 
  1. JVM内存分配太多
    原因:服务器只有2G内存,默认使用1G,两个就不够了
    解决:调小JVM(修改环境变量KAFKA_HEAP_OPTS
    报错:
# docker start kafka0 -i
日志....................
[2022-06-25 11:18:02,204] ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
java.lang.OutOfMemoryError: Java heap spaceat java.base/java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:61)at java.base/java.nio.ByteBuffer.allocate(ByteBuffer.java:348)at kafka.log.SkimpyOffsetMap.<init>(OffsetMap.scala:45)at kafka.log.LogCleaner$CleanerThread.<init>(LogCleaner.scala:301)at kafka.log.LogCleaner.$anonfun$startup$2(LogCleaner.scala:156)at kafka.log.LogCleaner$$Lambda$382/0x00000001003e4840.apply$mcVI$sp(Unknown Source)at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:158)at kafka.log.LogCleaner.startup(LogCleaner.scala:155)at kafka.log.LogManager.startupWithConfigOverrides(LogManager.scala:491)at kafka.log.LogManager.startup(LogManager.scala:418)at kafka.server.KafkaServer.startup(KafkaServer.scala:269)at kafka.Kafka$.main(Kafka.scala:109)at kafka.Kafka.main(Kafka.scala)
日志....................
[2022-06-25 11:18:02,467] INFO Broker and topic stats closed (kafka.server.BrokerTopicStats)
[2022-06-25 11:18:02,489] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser)
[2022-06-25 11:18:02,490] INFO [KafkaServer id=0] shut down completed (kafka.server.KafkaServer)
[2022-06-25 11:18:02,490] ERROR Exiting Kafka. (kafka.Kafka$)
[2022-06-25 11:18:02,518] INFO [KafkaServer id=0] shutting down (kafka.server.KafkaServer)
日志....................
  1. JVM内存分配太少
    原因:上面的问题发生后,我改成了100m。内存太小,加载不了,JVM OOM了
    解决:调小JVM(修改环境变量KAFKA_HEAP_OPTS
    报错:同上

Kafka-3.0.1-Docker+集群 踩坑笔记相关推荐

  1. 【完整记录】使用kubeadm部署kubernetes集群踩坑记录及解决方案

    文章目录 搭建集群过程中遇到的问题及解决方案 1. 现有网上的kubernetes集群搭建教程中的kubeadm配置文件版本过老导致出现以下报错: 2. kubeadm init过程中pull镜像超时 ...

  2. RocketMQ 集群踩坑记

    集群节点进程神秘消失 现象描述 接到告警和运维反馈,一个 RocketMQ 的节点不见了.此类现象在以前从未发生过,消失肯定有原因,开始查找日志,从集群的 broker.log.stats.log.s ...

  3. 在 Windows 上测试 Redis Cluster的集群填坑笔记

    redis 集群实现的原理请参考http://www.tuicool.com/articles/VvIZje 集群环境至少需要3个节点.推荐使用6个节点配置,即3个主节点,3个从节点. 新建6个文件夹 ...

  4. 在Ucloud实施KubernetesDocker集群踩坑实录

    前两天在Ucloud的公有云环境下实施一套K8s&docker环境,略有小坑. 具体见我的k8s笔记. 点击打开链接

  5. Windows10 Kafka Docker 集群搭建

    Windows10 Kafka Docker 集群搭建 简介     使用 Windows Docker Desktop 搭建 Kafka 集群 运行 Zookeeper     这里使用但 zk,使 ...

  6. Docker实战 (docker swarm的应用,docker集群的构建,在docker集群中部署服务)

    Docker实战 ----docker swarm的应用,docker集群的构建,在docker集群中部署服务 转载来源:https://blog.csdn.net/No_red/article/de ...

  7. docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)

    前言: 在之前曾写过一个关于docker集群创建的教程,但是不够深入,只是停留到集群的初始化和节点加入上,这次具体到服务,并详细讲解其中的原理.而且总结了很多自己做的过程中所踩过的很多坑(比如镜像的d ...

  8. 基于Kubernetes构建Docker集群管理详解

    from: 基于Kubernetes构建Docker集群管理详解 Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动 ...

  9. Kubernetes与docker集群管理常见问题解析

    很荣幸受邀参加开源中国社区的高手问答,我是时速云团队的后端工程师,负责主机管理功能开发.在互动过程中,发现大家在使用/调研kubernetes(简称k8s)过程中遇到了很多问题,这里我总结为几点: l ...

  10. 搭建高吞吐量 Kafka 分布式发布订阅消息 集群

    搭建高吞吐量 Kafka 分布式发布订阅消息 集群 简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区. ...

最新文章

  1. 1034 Head of a Gang(图的DFS解法) 擦边大法好
  2. 什么是Android PendingIntent?
  3. Directx11教程(15) D3D11管线(4)
  4. Linux_Bash脚本基础
  5. 从xib 创建 collectionViewCell
  6. 【Redis】使用Redis Sentinel实现Redis HA
  7. 在latex或者mathtype中如何输入花体,如拉式量L
  8. 脑机互联不是梦,最新脑机接口发布:智能手机可操控!
  9. vue中的v-show与v-if区别
  10. “蓝脑”计划:人造大脑的可能性 文化·探索 CCTV_com
  11. 【Rust日报】2020-05-05:窥探Zoom, Lambda部署, slip等
  12. android组合键截图原理,步步高vivo x7怎么截屏 组合键截图方法教程
  13. Android图片处理之Glide使用大全
  14. 杭州最美的骑行路线在此!趁着春天蹬车撒欢去!
  15. charles——教程——转载
  16. 一个菜鸟管理的学习和思考(二)
  17. java 撤销恢复按钮_java文本的撤销和恢复
  18. setsockopt 设置socket
  19. 机器学习.周志华《6 支持向量机》
  20. 基于Arduino的视觉暂留现象和频闪效应演示系统程序设计

热门文章

  1. 伟大程序员必须具备的7个好习惯
  2. 黑马程序员-----c语言从相识相知到renascence持续发布中第一篇
  3. 超详细的单臂路由详解
  4. 微信小程序模拟器所有页面都无法跳转
  5. 如何恢复计算机永久删除文件,回收站删除文件如何恢复
  6. 【每天学点Python】案例四:52周存钱挑战
  7. 通道注意力机制keras_注意力机制及Keras实现
  8. 我的android手机在哪里打开,USB调试在哪里打开 手机USB调试模式设置大全
  9. android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
  10. 【云游戏】云游戏的架构设计和技术实现