news 2026/5/1 7:52:43

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/1 6:51:02

世界模型:AI的下一个里程碑

引言当OpenAI的Sora横空出世,用一段60秒的高清视频震撼整个AI界时,很多人还不知道,这背后真正的技术革命叫做"世界模型"(World Model)。如果说大语言模型(LLM)让AI学会了"说话&q…

作者头像 李华
网站建设 2026/4/30 19:39:48

9个AI写作工具,专科生论文写作不再愁!

9个AI写作工具,专科生论文写作不再愁! AI 写作工具,让论文写作不再难 对于专科生而言,论文写作是一项既重要又充满挑战的任务。从选题到撰写,再到降重和格式调整,每一个环节都可能让人感到压力山大。而随着…

作者头像 李华
网站建设 2026/4/20 5:04:15

PFC2D5.0颗粒流离散元【人工合成岩体】河谷下切算例 本案例提供参考,可以自行修改参数或者...

PFC2D5.0颗粒流离散元【人工合成岩体】河谷下切算例 本案例提供参考,可以自行修改参数或者按照要求二次加工,代码仅供参考学习。今天我们来聊聊PFC2D5.0颗粒流离散元在【人工合成岩体】河谷下切算例中的应用。这个案例非常有趣,尤其是对于研究…

作者头像 李华
网站建设 2026/5/1 7:32:36

软件测试和QA的KPI是什么?

软件测试行业中的关键性能指标(KPI)是用来衡量整个软件测试过程中效率与效果的一些可测量数值。尽管使用软件测试KPI来衡量效率似乎理所当然,但在软件测试行业中,测试界人士之间在是否使用KPI的问题上存在分歧。有些人认为软件测试KPI无益于帮助实现时间…

作者头像 李华
网站建设 2026/4/28 13:11:15

我的《Vue.js前端框架技术》课程深度学习之旅

当我编写的第一个Vue组件在浏览器中成功渲染出“Hello Vue!”,那种从零到一的突破感瞬间点燃了我对前端开发的热情。 作为一名前端技术爱好者,我深知掌握一门现代框架不仅需要理解语法,更需要建立完整的知识体系。在这门《Vue.js前端框架技术…

作者头像 李华
网站建设 2026/4/28 20:42:23

C++共享内存小白入门指南

什么是共享内存? 想象一下,你和你的室友共用一个冰箱。你们都可以往里面放东西,也可以从里面拿东西,这就是共享内存的基本概念!在C中,共享内存是一种让不同进程(可以理解为不同的程序&#xff0…

作者头像 李华