当前位置: 首页 > news >正文

CentOS7部署Kafka

CentOS7部署Kafka

  • 一、部署
    • 1、前置条件
    • 2、下载与解压
    • 3、修改配置
    • 4、启动kafka
  • 二、使用详解
    • 1、创建一个主题
    • 2、展示所有主题
    • 3、启动消费端接收消息
    • 4、生产端发送消息
  • 三、代码集成
    • pom.xml
    • application.properties
    • KafkaConfiguration.java
    • KafkaConsumer.java
    • KafkaProducer.java
    • VehiclePartitioner.java
    • KafkaTestController.java

一、部署

1、前置条件

1.安装jdk1.8
2.安装zookeeper

2、下载与解压

wget https://archive.apache.org/dist/kafka/2.8.0/kafka_2.12-2.8.0.tgz
tar xf kafka_2.12-2.8.0.tgz

3、修改配置

cd /data/kafka_2.12-2.8.0
vim /data/kafka_2.12-2.8.0/config/server.properties

编辑内容

# broker 的编号,如果集群中有多个 broker,则每个 broker 的编号需要设置的不同
broker.id=0
# 31 行
listeners=PLAINTEXT://192.168.50.93:9092
# 123 行,修改 zookeeper.connect 为自己的 IP:PORT
zookeeper.connect=localhost:2181
#存放消息日志文件的地址
log.dirs=/home/seven/kafka/kafka-logs
//默认的分区数,一个topic默认3个分区数
num.partitions=2

配置详解(与部署无关)

//当前机器在集群中的唯一标识,和zookeeper的myid性质一样(broker.id和host.name每个节点都不相同)
broker.id=0
//当前kafka对外提供服务的端口默认是9092listeners=PLAINTEXT://192.168.1.202:9092
//这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
host.name=hadoop1
//这个是borker进行网络处理的线程数
num.network.threads=3
//这个是borker进行I/O处理的线程数
num.io.threads=8
//发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.send.buffer.bytes=102400
//kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.receive.buffer.bytes=102400
//这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes=104857600
//消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,
//如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
log.dirs=/home/hadoop/log/kafka-logs
//默认的分区数,一个topic默认2个分区数
num.partitions=2
//每个数据目录用来日志恢复的线程数目
num.recovery.threads.per.data.dir=1
//默认消息的最大持久化时间,168小时,7天
log.retention.hours=168
//轮转时间,当需要删除指定小时之前的数据时,该设置项很重要
log.roll.hours=12
//这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.segment.bytes=1073741824
//每隔300000毫秒去检查上面配置的log失效时间
log.retention.check.interval.ms=300000
//是否启用log压缩,一般不用启用,启用的话可以提高性能
log.cleaner.enable=false
//设置zookeeper的连接端口
zookeeper.connect=192.168.123.102:2181,192.168.123.103:2181,192.168.123.104:2181
//设置zookeeper的连接超时时间
zookeeper.connection.timeout.ms=6000

4、启动kafka

nohup ./kafka-server-start.sh /home/seven/kafka/config/server.properties & 

二、使用详解

1、创建一个主题

–zookeeper:指定了kafka所连接的zookeeper服务地址
–topic:指定了所要创建主题的名称
–partitions:指定了分区个数
–replication-factor:指定了副本因子
–create:创建主题的动作指令

./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --partitions 2 --replication-factor 1

在这里插入图片描述

2、展示所有主题

./kafka-topics.sh --zookeeper localhost:2181 --describe --topic heartbeatMessage

在这里插入图片描述

3、启动消费端接收消息

–bootstrap-server 指定了连接kafka集群的地址
–topic 指定了消费端订阅的主题

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic heima

4、生产端发送消息

./kafka-console-producer.sh --broker-list localhost:9092 --topic heima

三、代码集成

pom.xml

<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.2.0.RELEASE</version>
</dependency>

application.properties

#============== kafka ===================
# 指定kafka代理地址,可以多个,逗号分隔
spring.kafka.bootstrap-servers=192.168.50.93:9092 #=============== producer生产者  ======

相关文章:

  • nodejs和vuejs的区别
  • 大语言模型(LLM)框架及微调 (Fine Tuning)
  • excel统计分析——两因素无重复方差分析
  • VSCODE : SSH远程配置+免密登录
  • 模型 KANO卡诺模型
  • PCL 切片法实现点云模型的体积测量、面积测量(二)
  • 信息学奥赛一本通2067详解+代码
  • GRU算法
  • 介绍一下 MVC MVVM
  • 人工智能_机器学习092_使用三维瑞士卷数据_利用分层聚类算法进行瑞士卷数据三维聚类---人工智能工作笔记0132
  • 冰箱温度预测 C语言xdoj47
  • RLHF几大常用框架实践对比(trlx、deepspeedchat、colossalaichat)
  • SpringBoot灵活集成多数据源(定制版)
  • 【以题代复习】计算机网络 第三章
  • Debian安装k8s记录
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • CentOS6 编译安装 redis-3.2.3
  • dva中组件的懒加载
  • eclipse的离线汉化
  • github从入门到放弃(1)
  • JavaScript 一些 DOM 的知识点
  • Java到底能干嘛?
  • java多线程
  • Linux gpio口使用方法
  • Python学习之路16-使用API
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • zookeeper系列(七)实战分布式命名服务
  • 关于for循环的简单归纳
  • 实习面试笔记
  • 听说你叫Java(二)–Servlet请求
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (算法设计与分析)第一章算法概述-习题
  • (转)Android学习笔记 --- android任务栈和启动模式
  • **CI中自动类加载的用法总结
  • .net core Swagger 过滤部分Api
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .Net MVC + EF搭建学生管理系统
  • .net 中viewstate的原理和使用
  • .net程序集学习心得
  • .NET与 java通用的3DES加密解密方法
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • :中兴通讯为何成功
  • @开发者,一文搞懂什么是 C# 计时器!
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C/C++]数据结构 堆的详解
  • [CTF]php is_numeric绕过
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [C进阶] 数据在内存中的存储——浮点型篇