news 2026/7/23 9:21:16

分布式消息队列kafka【一】—— 环境搭建及基本配置参数讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
分布式消息队列kafka【一】—— 环境搭建及基本配置参数讲解

分布式消息队列kafka【一】—— 环境搭建及基本配置参数讲解

文章目录

  • 分布式消息队列kafka【一】—— 环境搭建及基本配置参数讲解
    • 相关组件版本
    • kafka集群环境搭建
      • 准备工作
      • 开始搭建
      • kafka-manager管控台搭建与脚本测试验证
    • Kafka服务端基本配置参数讲解

相关组件版本

  • kafka版本:kafka_2.12
  • 管控台:kafkaManager 2.0.0.2
  • 协调服务:zookeeper-3.4.6
  • kafka环境验证(控制台操作)

kafka集群环境搭建

准备工作

  • 准备zookeeper环境(zookeeper-3.4.6)
  • 下载kafka安装包:https://archive.apache.org/dist/kafka/2.1.0/kafka_2.12-2.1.0.tgz
  • 上传到服务器

开始搭建

## 1.解压kafka包到/usr/local/下tar-zxvf kafka_2.12-2.1.0.tgz -C /usr/local/## 2.重命名kafka_2.12cd/usr/local/mvkafka_2.12-2.1.0/ kafka_2.12/## 3.修改kafka配置文件vim/usr/local/kafka_2.12/config/server.properties## 修改内容## The id of the broker. This must be set to a unique integer for each broker.broker.id=0## 端口port=9092## 主机名host.name=192.168.218.21 dvertised.host.name=192.168.218.21## Kafka把所有的消息都保存在磁盘上,而这个参数用来配置Kafka日志文件存放的根目录log.dirs=/usr/local/kafka_2.12/kafka-logs## 创建topic时默认分区num.partitions=5## zookeeper地址zookeeper.connect=192.168.218.21:2181,192.168.218.22:2181,192.168.218.23:2181## 4.创建kafka存储log日志数据的目录mkdir/usr/local/kafka_2.12/kafka-logs## 5.到此为止,kafka已经配置成功,执行启动命令,启动kafkanohup/usr/local/kafka_2.12/bin/kafka-server-start.sh /usr/local/kafka_2.12/config/server.properties&

kafka-manager管控台搭建与脚本测试验证

## 6.安装kafka-manager可视化管控台## 6.1.解压zip文件unzipkafka-manager-2.0.0.2.zip -d /usr/local/## 6.2.修改配置文件vim/usr/local/kafka-manager-2.0.0.2/conf/application.conf## 修改内容kafka-manager.zkhosts="192.168.218.21:2181,192.168.218.22:2181,192.168.218.23:2181"## 6.3.启动kafka-manager可视化管控台nohup/usr/local/kafka-manager-2.0.0.2/bin/kafka-manager&## 6.4.浏览器访问控制台,默认端口号是9000http://192.168.218.21:9000/## 6.5.添加cluster集群## 7.集群验证## 7.1.通过控制台创建一个topic为”test“,2个分区,1个副本## 7.2.消费发送和接收验证cd/usr/local/kafka_2.12/bin## 启动发送消息的脚本## --broker-list 192.168.218.21 指的是kafka broker的地址列表## --topic test 指的是把消息发送到test主题./kafka-console-producer.sh --broker-list192.168.218.21:9092 --topictest## 启动接收消息的脚本./kafka-console-consumer.sh --bootstrap-server192.168.218.21:9092 --topictest## 查看topic列表命令./kafka-topics.sh --zookeeper192.168.218.21:2181 --list## 创建topic命令## --zookeeper 192.168.218.21:2181 zookeeper地址## --create --topic topic02 创建的topic## --partitions 2 指定该topic的分区## --replication-factor 1 副本数./kafka-topics.sh --zookeeper192.168.218.21:2181 --create --topic topic02 --partitions2--replication-factor1## 查看kafka某个消费组的消费进度./kafka-consumer-groups.sh --bootstrap-server192.168.218.21:9092 --describe --group group02

Kafka服务端基本配置参数讲解

  • 参数文件:$KAFKA_HOME/config/server.properties

    • zookeeper.connect

      • 默认值:无

      • 必填项

      • 该参数指明broker要连接的ZooKeeper集群的服务地址(包含端口号),还可以在端口后面加上一个chroot路径,不指定chroot路径时默认使用ZooKeeper的根路径。这样可以用于多个kafka环境使用同一套zookeeper集群

      • 单节点配置:hostname:2181

      • 多节点配置:hostname1:2181,hostname2:2181,hostname3:2181

      • 多节点配置(添加chroot路径):hostname1:2181,hostname2:2181,hostname3:2181/kafka

    • listeners

      • 该参数指明broker监听客户端连接的地址列表,即为客户端要连接的broker的入口地址列表,配合着格式为protocol1://hostname1:port1,protocol2://hostname2:port2,其中protocol代表协议类型,Kafka当前支持的协议类型有PLAINTEXT、SSL、SASL_SSL等,如果未开启安全认证,则使用简单的PLAINTEXT即可。hostname代表主机名,port代表服务端口,此参数的默认值为null。
      • 如果不指定主机名,则表示绑定默认网卡,注意有可能会绑定到127.0.0.1,这样无法对外提供服务,所以主机名最好不要为空;
      • 如果主机名为0.0.0.0,则表示绑定所有的网卡
    • advertised.listeners

      • 作用和listeners类似,默认值也为null
      • 主要用于Iaas(Infrastructure as a Service)环境,比如公有云上的机器通常配备有多块网卡,即包含私网网卡和公网网卡,对于这种情况而言,可以设置advertised.listeners参数绑定公网IP供外部客户端使用,而配置listeners参数来绑定私网IP地址供broker间通信使用
    • broker.id

      • 该参数用来指定Kafka集群中broker的唯一标识,默认值为-1。如果没有设置,那么Kafka会自动生成一个
    • log.dir和log.dirs

      • Kafka把所有的消息都保存在磁盘上,而这两个参数用来配置Kafka日志文件存放的根目录
      • 一般情况下,log.dir用来配置单个目录,而log.dirs用来配置多个根目录(以逗号分隔),但是Kafka没有对此做强制的限制,也就是说,log.dir和log.dirs都可以用来配置单个或多个根目录
      • log.dirs的优先级比log.dir高,默认值为/tmp/kafka-logs
    • message.max.bytes

      • 该参数用来指定broker所能接收消息的最大值,默认值为1000012(B),约等于1M。
    • num.network.threads

      • 处理网络请求的最大线程数,默认是3
    • num.io.threads

      • 处理磁盘I/O的最大线程数,默认是8
    • num.partitions

      • 每个topic的分区个数,默认是1,更多的partition会产生更多的segment file
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 1:07:36

分布式消息队列kafka【四】—— 消费者进阶提升

分布式消息队列kafka【四】—— 消费者进阶提升 文章目录分布式消息队列kafka【四】—— 消费者进阶提升kafka消费者与消费者组的概念详解kafka之消费者与消费者组传统消息中间件投递模式kafka的消息中间件模型kafka消费者点对点模型与发布订阅模型实现topic常量生产者点对点模…

作者头像 李华
网站建设 2026/7/20 23:25:48

HunyuanVideo-Foley实战教程:结合HTML与JavaScript实现实时音效预览

HunyuanVideo-Foley实战教程:结合HTML与JavaScript实现实时音效预览 在短视频和直播内容井喷的今天,观众对视频“沉浸感”的要求早已超越画质本身。一个脚步声是否清脆、玻璃碎裂是否逼真、环境音是否自然,往往决定了作品的专业度。但传统音效…

作者头像 李华
网站建设 2026/7/20 17:11:20

5步部署WVP-GB28181-Pro:开源国标平台的终极指南

5步部署WVP-GB28181-Pro:开源国标平台的终极指南 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro 当企业需要快速搭建跨品牌监控系统时,往往面临设备兼容性差、部署复杂等痛点。WVP-GB2818…

作者头像 李华
网站建设 2026/7/22 6:12:43

X-TRACK 3D打印外壳DIY实战:从零打造专业级GPS自行车码表

X-TRACK 3D打印外壳DIY实战:从零打造专业级GPS自行车码表 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK 你是否曾经为市售自行车码表功能单一…

作者头像 李华
网站建设 2026/7/22 4:19:42

浏览器串口助手终极指南:零安装调试嵌入式设备

浏览器串口助手终极指南:零安装调试嵌入式设备 【免费下载链接】SerialAssistant A serial port assistant that can be used directly in the browser. 项目地址: https://gitcode.com/gh_mirrors/se/SerialAssistant 在物联网开发和嵌入式系统调试中&#…

作者头像 李华
网站建设 2026/7/22 21:22:01

gpt-oss-20b与ChatGLM-6B在中文场景下的对比实验

gpt-oss-20b与ChatGLM-6B在中文场景下的对比实验 在一台配备RTX 3060、内存16GB的普通台式机上,能否跑起真正“能用”的大模型?这不仅是个人开发者关心的问题,更是企业私有化部署智能系统时最现实的考量。随着数据安全法规趋严和边缘计算需求…

作者头像 李华