00_概览_kafka

news2024/12/23 10:01:25

kafka

  • 概述
  • kafka版本
  • 流程
  • 启动zk
    • 配置zk
    • 启动命令
  • 启动kafka
    • 修改server.properties
    • 启动命令
  • kafka脚本-命令行操作
    • 命令行
      • 创建主题脚本
      • 查看主题
      • 主题详情
      • 修改主题
      • 删除主题
      • 大量日志
        • 解决方案
      • 控制台生产者消费者
      • 代码 生产者 消费者
      • kafka-tool
      • kafka数据文件
  • 扩展
    • 横向扩展
    • 纵向扩展
      • 分区
      • 消费者组
      • 备份
      • 分区
      • Controller选举
      • 图解kafka架构
  • Windows集群
    • cluster目录
    • zk
    • broker_1
    • broker_2
    • broker_3
    • kafka & zk启动脚本
    • cluster.bat cluster-clear-data.bat
    • znode节点
      • 临时节点 持久化节点
      • watch 节点监听
      • kafka在zookeeper中的组成
    • zk选举kafka
    • 副本分配
      • 副本分配策略
  • 发送数据流程
    • 生产数据
    • 消费数据
    • 拦截器
      • 添加拦截器
      • 实现自定义拦截器
    • 分区器 分区计算策略
      • 自定义分区器
      • 分区计算策略
    • 数据收集器
    • 数据发送者
      • 异步数据发送回调
      • 同步发送数据回调
      • 应答处理级别
        • ack == 0
        • ack == 1
        • ack == -1(all)
    • kafka幂等性
      • 初始化事务
    • 存储文件类型
      • 刷写数据条件
    • 存储数据

概述

课程地址为 https://www.bilibili.com/video/BV1Gp421m7UN/

kafka版本

2.12-3.6.1
在这里插入图片描述

流程

在这里插入图片描述

启动zk

配置zk

需要启动zk,作为注册中心
kafka内置了zk,直接命令启动即可
在 kafka 的 config目录下,修改zookeeper.properties 配置文件

# 这里面配置的是有关数据存放的目录
dataDir=E:/kafka/kafka2.xxx/data/zk

启动命令

在 kafka/bin/windows 下,找到 zookeeper-server-start.bat,运行如下命令…/…/config/zookeeper.properties 文件

zookeeper-server-start.bat  ../../config/zookeeper.properties

这么一来,可以直接启动zk.出现如下图: 启动成功
在这里插入图片描述

启动kafka

修改server.properties

修改 log.dirs 的值
在这里插入图片描述

启动命令

kafka-server-start.bat config.properties

kafka脚本-命令行操作

提供了一定的脚本,通过脚本操作kafka
可以进行创建主题 发送消息等操作

命令行

创建主题脚本

相关脚本
kafka-topics.bat
kafka提供的主题脚本
创建 test 主题

kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create

查看主题

kafka-topics.bat --bootstrap-server localhost:9092 --list

主题详情

kafka-topics.bat --bootstrap-server localhost:9092 --topic test --describe

修改主题

kafka-topics.bat --bootstrap-server localhost:9092 --topic test --alter --partitions
在这里插入图片描述
将红圈部分改为2
效果如下
在这里插入图片描述

删除主题

kafka-topics.bat --bootstrap-server localhost:9092 --topic test --delete
windows环境下会导致kafka停止运行的错误
由于权限或进程锁定,会导致kafka被关闭

大量日志

由于JDK版本问题导致

解决方案
  1. 切换JDK17
  2. 在kafka-run-class.bat 中设置 java_home
    在这里插入图片描述

控制台生产者消费者

通过控制台控制生产
启动生产者脚本
消费者启动脚本
生产者发送消息,消费者自动获取消息

代码 生产者 消费者

只引入 kafka 的依赖.进行代码
生产者 创建 topic 以及 消息
消费者 订阅 topic 以及消费消息

<dependencies>
	<dependency>
	<groupId>org.apache.kafka</groupId>
	<artifactId>kafka-clients</artifactId>
	<version>3.6.1</version>
	</dependency>
</dependencies>

具体代码请百度.只引入 kafka-client即可.

kafka-tool

在这里插入图片描述
这里百度去学习

kafka数据文件

.log结尾的就是数据文件
因为 kafka 以前是做日志传输的.

扩展

横向扩展

增加机器

纵向扩展

增加内存 硬盘 宽带等…

分区

运行多个kafka实例. 对 kafkaBroker 的相同topic进行编号.
这叫做分区
生产者向不同分区传送数据

消费者组

消费者消费所有的分区topic

备份

可以对数据文件进行备份.
分区备份
同一 topic 的是数据文件备份到其他分区的broker上面
在这里插入图片描述
但是多个副本,只有一个副本能够提供数据的读写.其他是从节点,负责备份

分区

Leader Follower
Partition 分区
Broker 服务节点集群
Broker Controller: Broker 服务节点集群管理者
Broker Controller Standby : 服务集群管理者备份

Controller选举

BrokerController down之后,Standby启动.
BrokerStandbyController启动.
BrokerStandbyController出现问题,可以继续选择其他主体 Broker ,选举出来一个BrokerController

图解kafka架构

KogManager: 数据管理器
在这里插入图片描述

Windows集群

cluster目录

创建cluster目录在硬盘根目录.解压 kafka,复制到该目录.如图
在这里插入图片描述

zk

修改kafka自带的zkdata存放目录.然后启动
在这里插入图片描述

broker_1

在这里插入图片描述
在这里插入图片描述

broker_2

和 broker_1 一样

broker_3

和 broker_2 一样

kafka & zk启动脚本

略...

cluster.bat cluster-clear-data.bat

略...

znode节点

临时节点 持久化节点

watch 节点监听

监听kafka的客户端.

kafka在zookeeper中的组成

略…

zk选举kafka

假设一共三个kafka节点
brokerController1 down了.
剩下的两个节点,监听zk,发现broker1掉了之后,会发起请求,谁的请求先到.谁就是 新的 brokerController

副本分配

对副本进行分配,放到不同的broker中

副本分配策略

发送数据流程

在这里插入图片描述
总的就是这张图
在这里插入图片描述

生产数据

消费数据

拦截器

添加拦截器

在这里插入图片描述

实现自定义拦截器

public class ValueInterceptorTest implements ProducerInterceptor<String>{
	
}

在这里插入图片描述

分区器 分区计算策略

发送消息.

自定义分区器

实现接口重写方法

public class myKafkaParationer implements Partitioner{}

在这里插入图片描述

分区计算策略

略...

数据收集器

数据发送者

异步数据发送回调

producer.send(msg,callBackMethod);

在这里插入图片描述

同步发送数据回调

在这里插入图片描述
这就同步操作了

应答处理级别

ack 的值

ack == 0
ack == 1
ack == all(-1)
ack == 0
ack == 1
ack == -1(all)

kafka幂等性

初始化事务

在这里插入图片描述
prodicer.initTransaction(); // 开启事务

prodicer.commit(); // 提交事务

prodicer.abortTranscation(); // 终止事务

存储文件类型

刷写数据条件

在这里插入图片描述

一条数据就从内存刷到硬盘上

存储数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2196083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小沐学GIS】QGIS导出OpenStreetMap数据(QuickOSM、OSM)

文章目录 1、简介1.1 OSM1.2 QuickOSM1.3 Overpass Turbo 2、插件安装3、插件使用3.1 快速查询&#xff08;boundary边界&#xff09;3.2 快速查询&#xff08;railway铁路&#xff09;3.3 快速查询&#xff08;boundaryadmin_level行政边界&#xff09;3.4 快速查询&#xff0…

OpenFeign-查询参数-日期格式化:LocalDate、Date、@DateTimeFormat(低版本无效)

创建时间&#xff1a;2024-10-08 本文适用的依赖版本&#xff1a; spring-boot-starter-parent&#xff1a;3.3.3 spring-cloud-starter-openfeign&#xff1a;4.1.3 一、场景 在 REST API 的查询接口中&#xff0c;日期查询参数 的格式一般是标准&#xff08;ISO 8601&#x…

BiGRU-Transformer时间序列预测(多输入单预测)——基于Pytorch框架

1 介绍 本文将介绍一种基于Transformer和BiGRU&#xff08;双向门控循环单元&#xff09;的混合模型及其在时间序列预测中的应用。本模特适用于多输入单输出预测&#xff0c;适合风电预测&#xff0c;功率预测&#xff0c;负荷预测等等。 2 方法 首先&#xff0c;从Excel文件…

常见数据库等保测评检查命令汇总

MySQL数据库 select user, host FROM mysql.user&#xff1b;查看管理用户 show variables like validate%; 查看口令策略 show variables like %password%; 查看口令策略 show variables like %general%; 查看日志是否开启 show variables like general_log%; 可以看查询日…

电磁兼容(EMC):PCB设计里的镜像面究竟是个啥?

目录 1. 镜像面概念 2. 镜像面示意 3. 镜像面工作原理 4. 总结 PCB设计中涉及到高频信号处理时经常会听到一个叫做镜像面的概念。镜像面究竟是哪个面&#xff1f;和我们平时所说的地平面和电源平面有什么区别&#xff1f; 1. 镜像面概念 镜像面是指高频信号在完整平面上的…

退货单不能反价值重估的操作

财务的工作效率几何级式倍增。29号做的退货单&#xff0c;30号就做了发票。业务员工作质量却是堪忧&#xff0c;退货单做了2次。这样的问题是常态&#xff0c;该如何避免呢&#xff1f; 从提示文字分析&#xff0c;不能弃审&#xff0c; 一般是单据被下游单据锁定导致的&#…

算法 | 模拟

目录 替换所有的问号 题解&#xff1a; 提莫攻击 题解&#xff1a; Z字形变换 题解&#xff1a; 外观数列 题解&#xff1a; 数青蛙 题解&#xff1a; 替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/re…

AFSim仿真系统 --- 系统简解_03( Warlock模块 - 人在环路 在仿真领域中指的是AFSIM的操作员互动可视化应用程序)

我们就用保留单词 Warlock Warlock&#xff08;在仿真领域中指的是AFSIM的操作员互动可视化应用程序--人在环路 &#xff09; Warlock是AFSIM的操作员环环相扣&#xff08;Operator-in-the-Loop&#xff09;视觉应用程序。它提供了一个图形环境&#xff0c;用于在运行时查看和…

【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL45

异步FIFO 描述 请根据题目中给出的双口RAM代码和接口描述&#xff0c;实现异步FIFO&#xff0c;要求FIFO位宽和深度参数化可配置。 电路的接口如下图所示。 双口RAM端口说明&#xff1a; 端口名 I/O 描述 wclk input 写数据时钟 wenc input 写使能 waddr input 写…

Qt程序国际化

目录 程序的国际化 第一步&#xff1a;生成ts文件 第二步&#xff1a;生成并加载qm文件 程序的国际化 第一步&#xff1a;生成ts文件 Ts文件格式上实际是xml&#xff0c;记录界面的字符和代码中tr包含的字符的具体位置&#xff08;文件位置&#xff0c;行号列号等&#xff0…

QT 实现图片查看工具

QT 实现图片查看工具 1、选择图像文件 单文件选择 QFileDialog::getOpenFileName多文件选择 QFileDialog::getOpenFileNamesQList<QString> imageNames = QFileDialog::getOpenFileNames(this,tr("打开图片"),"",tr("图片文件 (*.png *.jpg *.b…

【STM32 Blue Pill编程实例】-OLED显示DHT22传感器数据

OLED显示DHT22传感器数据 文章目录 OLED显示DHT22传感器数据1、DHT22介绍2、硬件准备与接线3、模块配置3.1 定时器配置3.2 DHT22引脚配置3.3 OLED配置4、代码实现在本文中,我们将介绍如何将 DHT22 温度和湿度传感器与 STM32 Blue Pill 开发板连接,并使用 HAL 库在 STM32CubeI…

车载音频焦点(二)

目录 1 可延迟的音频焦点 2 多音频区焦点管理 3 HAL 音频焦点 4 OEM 车载音频焦点服务 1 可延迟的音频焦点 在 Android 11 中,AAOS 开始支持请求获得可延迟的音频焦点。 当非瞬态焦点请求 与 当前焦点持有者交互 遭到拒绝时,前者可以延迟。 一旦焦点的变化导致延迟的请…

各省份自然灾害损失造成的直接经济损失数据(2009-2022年)

自然灾害是自然演变过程中不可避免的现象&#xff0c;它们对人类社会构成了巨大的威胁。中国作为一个自然灾害频发的国家&#xff0c;面临着种类繁多的灾害挑战&#xff0c;包括气象灾害、地质灾害、海洋灾害、生物灾害和森林草原火灾等。 数据来源&#xff1a;《中国环境统计…

数据分布过于集中 怎么办,python 人工智能 ,数据分析,机器学习pytorch tensorflow ,

数据分布过于集中&#xff0c;意味着数据的大部分值都聚集在某个特定区间内&#xff0c;这可能会导致统计分析的结果不够稳健&#xff0c;或者模型训练时出现过拟合等问题。针对这种情况&#xff0c;可以考虑以下几种方法来处理&#xff1a; 变换成 1. **数据转换**&#xff1…

笔记-stm32移植ucos

文章目录 一、UCOS的基础知识1.1 前后台系统:1.2 RTOS系统可剥夺型内核:前后台系统和RTOS系统 1.3 UCOS系统简介学习方法 二、ucossii移植Step1&#xff1a;在工程中建立存放UCOSS代码的文件夹UCOSIIStep2:向CORE文件夹添加文件Step3:向Config文件夹添加文件Step4:向port文件夹…

Knife4j-SpringBoot3-OpenAPI3:基本使用、生产环境关闭接口文档、配置文件、配置接口文档描述信息、OpenAPI3注解

版本&#xff1a; SpringBoot&#xff1a;3.3.3 Knife4j&#xff1a;4.5.0 创建时间&#xff1a;2024-10-08 一、官网 Knife4j 的 SpringBoot3 官方说明文档&#xff1a; https://doc.xiaominfo.com/docs/quick-start#spring-boot-3 springdoc官网&#xff1a;https://spring…

笔试强训day33

跳台阶扩展问题 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。 数据范围&#xff1a;1≤n≤201≤n≤20 进阶&#xff1a;空间复杂度 O(1)O(1) &#xff0c; 时间复杂度 O(1)O(1) 输入…

【EXCEL数据处理】000017 案例 保姆级教程,附多个操作案例。EXCEL Match和Index函数。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000017 案例 保姆级教程&#xff0c;附多个操作案例。…