首页 > 其他分享 >Kafka基础知识

Kafka基础知识

时间:2024-07-13 11:44:28浏览次数:7  
标签:副本 分区 Broker 基础知识 消息 key Kafka

目录

Kafka 简介

  • 中间件,如Kafka,用来存储消息的软件(组件)
  • 程序员可以在消息队列中 存 取 消息
  • 很多时候消息队列是临时存储(设定期限:消息在MQ中保存10天)

消息

  • 存在topic主题,类似数据库中的表,但是是半结构化
    • 一般存同一类型的消息,但有些情况下也可以存不同类型的
    • 主题可以包含多个分区Partition,不同的分区存在不同的服务器上,使Kafka集群能够线性拓展
      • 存在分区内的消息是不可变的
      • Kafka可以通过偏移量(下标)对消息进行提取,无法对消息的内容检索或查询
      • 分区损坏数据丢失,Kafka通过副本机制(副本也是分区),保证数据可靠性(replication-factor=3 // 副本因子为3)
        • Kafka会选择一个副本作为主分区leader,用于数据的读取
        • 其他副本为follow,只复制leader的数据
        • 维护一个ISR的集合(正在同步的副本集),监控数据同步的状态
  • 消息形式:键值对
    • 如果不指定key,key的值为空,如果存消息使key为空,Kafka会将消息平均匀到各个分区
    • 如果消息指定key,那么相同key的消息会存在同一分区,保证相同性的消息按照一定顺序进行写入
  • 消息代理Broker
    • Kafka集群是由多个Broker组成的,Broker负责消息的读写请求,并将消息存入磁盘中。
    • 通常,一台服务器就是一个Broker
      • 举例:有多个Broker组成每个Kafka集群,每个Broker中有多个分区,其中一个为主分区leader,其他几个为follow。这个Broker就负责处理这个leader的读写请求,负责在follow上同步数据

标签:副本,分区,Broker,基础知识,消息,key,Kafka
From: https://www.cnblogs.com/kwqlj/p/18299873

相关文章

  • Python基础知识
    Python基础知识Python注释Python单行注释Python中使用井号(#)作为单行注释的符号,语法格式为:#注释内容也就是说,从符号#处开始,直到换行处结束,此部分内容都作为注释的内容,当程序执行时,这部分内容会被忽略。单行注释放置的位置,既可以是要注释代码的前一行,例如:#这是一行简单的......
  • 音视频开发基础知识
    视频解码解复用(Demux):解复用也可叫解封装。这里有一个概念叫封装格式,封装格式指的是音视频的组合格式,常见的有mp4、flv、mkv等。通俗来讲,封装是将音频流、视频流、字幕流以及其他附件按一定规则组合成一个封装的产物。而解封装起着与封装相反的作用,将一个流媒体文件拆解成音频......
  • librdkafka 常见问题FAQ
    1,++librdkafka一个消费者实例分配了所有分区不提交位点,在发生rebalance后,会重新从头消费数据吗在发生重新平衡(rebalance)后,消费者会从哪里开始消费数据取决于消费者组的配置,特别是auto.offset.reset配置项。关键配置项:auto.offset.resetauto.offset.reset决定了在没有有......
  • 硬件基础知识——电感
    电感常用公式 感抗:XL=2πfL,频率越小感抗越小,频率越大感抗越大电感能量公式:电感两端电压:磁通量:ψ(psi)为磁通量,N表示线条数,Φ表示磁通量B表示磁感应强度,A是电感的有效截面积。如果电感中流过电流I,会产生磁动势F,特性:阻交通直,阻碍电流的突然变化,当电感饱和之后相当于一条......
  • Java基础知识之NIO
    概述讲述ava层面NIO基础知识,用作基础回顾所用1.NIO概述​ 在Java中,NIO(Non-blockingI/O或NewI/O)是JavaSE1.4及后续版本中引入的一套新的输入/输出操作API。​ 它与传统的IO模型相比,提供了更高的效率和更好的并发处理能力。NIO的关键特性在于它的非阻塞特性,这使得单个......
  • .NET/C#、Netcore、数据库、Redis 、RabbitMQ&kafka、Docker ⾯试题汇总系列目录
    .NET/C#⾯试题汇总系列.NET/C#⾯试题汇总系列:ASP.NET常见面试题001.NET/C#⾯试题汇总系列:ASP.NET常见面试题002.NET/C#⾯试题汇总系列:ASP.NET常见面试题003.NET/C#⾯试题汇总系列:基础语法.NET/C#⾯试题汇总系列:ASP.NETMVC.NET/C#⾯试题汇总系列:多线程.NET/C#⾯......
  • python基础知识(全部)
    2023年说明:如果代码有误的话,记得处理一下缩进,或者注释的问题,文章粘贴的代码在此处可能部分缩进有问题建议食用:目录一变量和简单数据类型输出二数整数.浮点数注释三列表定义和打印访问列表元素修改,添加,删除元素修改添加删除组织列......
  • centos7下kafka集群安装部署
    centos7下kafka集群安装部署 应用摘要: Apachekafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,是消息中间件的一种,用于构建实时数据管道和流应用程序,很火!Kafka官网:http://kaf......
  • 生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授
    web安全的基础知识基本定义Web安全,也称为网络安全或在线安全,是指保护网站、网页和Web服务免受各种威胁和攻击的技术和实践。这些威胁可能来自恶意软件、网络攻击、数据泄露、身份盗窃、服务中断等。Web安全的目标是确保Web应用程序和用户数据的安全、完整和可用性。一般流程......
  • kafka分层存储解读
    分层存储的目标是根据数据的特性和组织的策略,将数据放在最合适的存储介质上,从而优化存储资源的使用,平衡性能和成本。怎么进行分层存储:可以根据分析使用模式、访问频率和其他因素的策略和算法,自动在这些层之间放置和移动数据。这确保了最关键和频繁访问的数据驻留在高性能存储中......