news 2026/5/24 3:04:00

docker使用kafka

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
docker使用kafka
docker pull kafka-native:4.0.1

拷贝配置文件到当前目录

dockercp你的kakfid:/etc/kafka/docker/server.properties ./

配置文件翻译

# Apache 软件基金会(ASF)根据一个或多个贡献者许可协议授权。# 请参阅与此作品一起分发的 NOTICE 文件以获取有关版权所有权的更多信息。# ASF 根据 Apache 许可证 2.0 版(“许可证”)将此文件授权给您;除非符合许可证,否则您不得使用此文件。# 您可以在以下位置获取许可证副本:## http://www.apache.org/licenses/LICENSE-2.0## 除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,# 不提供任何形式的明示或暗示的保证或条件。# 请参见许可证,了解有关权限和限制的具体语言。################## 为什么我们需要这个单独的配置 ##################### 尽管我们的最新版本支持动态投票者配置,# 我们仍然将在 Docker Hub 镜像中继续使用静态投票者配置。# 这一决策确保了不同版本之间的广泛兼容性,并保持现有部署的一致行为。# 通过在我们的 Docker 镜像中保留静态投票者实现,我们可以为用户提供一个更稳定和可预测的环境,# 适用于不同版本的应用程序。############################# 服务器基本配置 ############################## 该服务器的角色。设置此项将使我们处于 KRaft 模式process.roles=broker,controller# 与此实例的角色相关联的节点 IDnode.id=1# 控制器法定投票者的连接字符串controller.quorum.voters=1@localhost:9093############################# 套接字服务器设置 ############################## 套接字服务器监听的地址。# 合并节点(即 `process.roles=broker,controller`)必须至少列出控制器监听器。# 如果未定义代理监听器,默认监听器将使用 java.net.InetAddress.getCanonicalHostName() 的值作为主机名,# 监听器名称为 PLAINTEXT,端口为 9092。# 格式:# listeners = listener_name://host_name:port# 示例:# listeners = PLAINTEXT://your.host.name:9092listeners=PLAINTEXT://:9092,CONTROLLER://:9093# 用于代理之间通信的监听器名称。inter.broker.listener.name=PLAINTEXT# 代理或控制器将向客户端广告的监听器名称、主机名和端口。# 如果未设置,则使用“listeners”的值。advertised.listeners=PLAINTEXT://localhost:9092# 控制器使用的监听器名称的逗号分隔列表。# 如果在 `listener.security.protocol.map` 中没有显式映射,默认将使用 PLAINTEXT 协议。# 如果在 KRaft 模式下运行,则此项是必需的。controller.listener.names=CONTROLLER# 将监听器名称映射到安全协议,默认情况下它们是相同的。有关更多详细信息,请参见配置文档。listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL# 服务器用于接收网络请求并发送响应的线程数num.network.threads=3# 服务器用于处理请求的线程数,这些请求可能包括磁盘 I/O 操作num.io.threads=8# 套接字服务器使用的发送缓冲区(SO_SNDBUF)socket.send.buffer.bytes=102400# 套接字服务器使用的接收缓冲区(SO_RCVBUF)socket.receive.buffer.bytes=102400# 套接字服务器将接受的请求的最大大小(防止 OOM)socket.request.max.bytes=104857600############################# 日志基本配置 ############################## 存储日志文件的目录的逗号分隔列表log.dirs=/tmp/kraft-combined-logs# 每个主题的默认日志分区数。更多的分区允许更大的消费并行性,# 但这也会导致代理之间有更多的文件。num.partitions=1# 启动时用于日志恢复和关闭时用于刷新操作的每个数据目录的线程数。# 如果数据目录位于 RAID 阵列中,建议增加此值。num.recovery.threads.per.data.dir=1############################# 内部主题设置 ############################## 用于组元数据的内部主题“__consumer_offsets”、“__share_group_state”和“__transaction_state”的复制因子# 对于开发测试以外的任何情况,建议使用大于 1 的值来确保可用性,例如 3。offsets.topic.replication.factor=1share.coordinator.state.topic.replication.factor=1share.coordinator.state.topic.min.isr=1transaction.state.log.replication.factor=1transaction.state.log.min.isr=1############################# 日志刷新策略 ############################## 消息会立即写入文件系统,但默认情况下我们只会使用 fsync() 来懒刷新操作系统缓存。# 以下配置控制数据刷新到磁盘的行为。# 这里有一些重要的权衡:# 1. 持久性:如果未使用复制,未刷新的数据可能会丢失。# 2. 延迟:非常大的刷新间隔可能会导致刷新时延迟峰值,因为会有大量数据等待刷新。# 3. 吞吐量:刷新通常是最昂贵的操作,较小的刷新间隔可能会导致过度寻址。# 以下设置允许配置刷新策略,以在一段时间后或每 N 条消息后强制刷新数据(或两者)。# 可以全局配置并在每个主题上覆盖。# 接受多少条消息后强制刷新数据到磁盘#log.flush.interval.messages=10000# 消息在日志中停留的最大时间,超过此时间将强制刷新#log.flush.interval.ms=1000############################# 日志保留策略 ############################## 以下配置控制日志段的处理策略。可以设置为在一段时间后或在达到特定大小后删除日志段。# 当满足 *任一* 条件时,日志段将被删除。删除始终发生在日志的末尾。# 日志文件达到的最小年龄后才能因年龄被删除log.retention.hours=168# 基于大小的日志保留策略。除非剩余的日志段小于 log.retention.bytes,否则会从日志中修剪日志段。# 与 log.retention.hours 独立工作。#log.retention.bytes=1073741824# 日志段文件的最大大小。达到该大小时,将创建一个新的日志段。log.segment.bytes=1073741824# 检查日志段是否可以根据保留策略删除的时间间隔log.retention.check.interval.ms=300000

我要在林英泰设备上链接kafka
linux->docker ->kafka
要想外部链接,我们修改设置

listeners=PLAINTEXT://0.0.0.0:9092,PLAINTEXT://0.0.0.0:9093 advertised.listeners=PLAINTEXT://192.168.8.6:9092 advertised.listeners=你的服务器ip://localhost:9092
配置文件挂载到docker
docker tag apache/kafka-native:4.0.1 kafka docker run --name kafka\-v /home/user1/software/kafka/server.properties:/etc/kafka/server.properties\-p9092:9092\kafka
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 3:41:14

Cocos creator如何使用onCollisionEnter或者onTriggerEnter

其实使用和unity基本一样,但是代码写法有点不一样,unity的话只用直接写事件函数 onTriggerEnter或者 onCollisionEnter就好,但是cocos不仅要写,还要在start方法里绑定start() {this.collider this.node.getComponent(Collider…

作者头像 李华
网站建设 2026/5/20 16:40:14

豆包大模型日均tokens使用量超50万亿,比去年同期增长超10倍

12月18日,火山引擎在FORCE原动力大会上正式发布豆包大模型1.8及音视频创作模型Seedance 1.5 pro。权威评测数据显示,豆包大模型在多模态理解、生成能力及Agent能力上,已跻身全球第一梯队。 据火山引擎总裁谭待介绍,截至今年12月&…

作者头像 李华
网站建设 2026/5/23 6:41:05

这才是项目经理「年终总结」的正确打开方式!

2025年已经接近尾声了,年终汇报如期而至。 今天小赛总结了一些写年终总结的关键要点和模板,让你一看就懂,一用就会。 1.先想明白:领导想看什么,你想表达什么?‌‌ 写年终总结之前,先不要着急…

作者头像 李华
网站建设 2026/5/23 4:39:06

这是一份动手学深度学习笔记!(附学习资料)

如果你正在学习深度学习,肯定听说过李沐老师的动手学深度学习,这是公认的经典之作这一期主要是给大家总结这个教程的大纲内容并给大家分享电子pdf、完整的教程视频、配套的课件源码以及学习笔记(如下图)需要的兄弟可以按照这个图的…

作者头像 李华
网站建设 2026/5/21 17:13:41

刷题日记day8(图论拓扑关系)

简介 本篇介绍两道有关拓扑排序的问题,难度为洛谷黄题 前置知识 拓扑排序就是一系列有不同优先级的事件的排列,其中优先级相同的事情可以相互交换 关键结论一个图能进行拓扑排序的充要条件是它是一个有向无环图(DAG) 入度和出度的概念 1.入度&#xf…

作者头像 李华