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

Kafka·概述

概览

在这里插入图片描述

Producer

生产者发送消息给broker,并不是生成一条消息后立刻发送,而是积攒多条后,批量发送到broker。可以通过配置参数batch.size(单位字节)调整积攒多少后发送

Consumer

Topic

消息的分类
当Producer发送指定topic的消息时,若在server端不存在该topic,可通过配置参数auto.create.topics.enable(默认true,在生产中不建议开启)决定是否自动创建

  • Partition(分区)
    为了降低topic在单个broker上的压力,创建topic时可以为该topic指定分区数量,将该topic的分区分布到不同的broker上,这样当producer发送指定topic的消息时,可以将这些消息分布存储到该topic的分区所在的broker上
    在这里插入图片描述

    当多个消费者监听同一个topic的消息时,属于同一个消费者组的消费者可以分别消费不同的分区中的消息,如有三个分区,三个消费者,则每个消费者各消费一个分区中的消息

  • 副本
    为了支持高可用,即使集群某台broker宕机,也能正常提供服务,为每个分区创建多个副本,如下topicA指定了三个分区和两个副本
    在这里插入图片描述

    • leaderfollower
      同一个分区的多个副本中会选出一个作为leader,其他作为follower,客户端(Producer和Consumer)只和leader交互。
      follower从leader同步数据,leader宕机后会从其他follower中选举出一个成为新的leader
    • controller

Cosumer Group

生产者生产的消息越来越多,若单个消费者的消费能力不够,则消息会在server端产生堆积,为了提高消费能力,可增加多个消费者,每个消费者至少消费一个分区中的数据,为了避免分区的数据被重复消费,可将这些消费者划分为一个组(设置group.id)
在这里插入图片描述

同一个消费者组中的消费者会分配不同的分区去消费,不存在一个以上的消费者消费同一个分区的情况

如果消费者数量大于分区数量,则多余的消费者不消费数据

offset

消费者组在单个分区上消费消息的偏移量

存储机制

分区在broker上的存储形式

在这里插入图片描述
.index文件:索引文件
.log文件:存放数据的文件
.timeindex文件:存放时间索引的问题

segment

随着消息的不断增加,存储的文件越来越大,检索效率会越来越低。当文件增大到指定log.segment.bytes大小后,将会创建新的文件用于存储新的数据内容,每个segment都会对应一套.log .index .timeindex文件

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【计算机网络】计算机网络的分层结构
  • 【深度学习与NLP】——深度卷积神经网络AlexNet
  • 华为eNSP:静态路由配置、浮动路由配置
  • 阿里云OSS文件存储
  • 初识C++(8.27)
  • CentOS 7的yum源更换为国内源
  • 【设计模式】简单工厂模式
  • Ai+若依(页面调整--去除若依的各种痕迹,采用自己的):【07篇】
  • Qt_信号槽机制
  • UnrealEngine学习(01):安装虚幻引擎
  • 教育与经济
  • Linux(CentOS8)系统安装mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
  • 制造业中的MES知识与ERP\PLM\WMS架构关系(附智能制造MES解决方案PPT下载)
  • 极限基础:变化率在manim中的实现
  • 【数据科学概述】数据科学的基本概念与发展历程】
  • __proto__ 和 prototype的关系
  • 【刷算法】从上往下打印二叉树
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • avalon2.2的VM生成过程
  • C++类中的特殊成员函数
  • Gradle 5.0 正式版发布
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript设计模式学习之Observer(观察者)模式
  • Netty源码解析1-Buffer
  • React-Native - 收藏集 - 掘金
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 不上全站https的网站你们就等着被恶心死吧
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 聊聊hikari连接池的leakDetectionThreshold
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 译米田引理
  • ​flutter 代码混淆
  • ​补​充​经​纬​恒​润​一​面​
  • #define
  • #define用法
  • (python)数据结构---字典
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (原創) 未来三学期想要修的课 (日記)
  • (转)视频码率,帧率和分辨率的联系与区别
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET程序员迈向卓越的必由之路
  • .net反混淆脱壳工具de4dot的使用
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • @RequestMapping处理请求异常
  • @RequestMapping用法详解
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [4]CUDA中的向量计算与并行通信模式
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Angularjs]ng-select和ng-options
  • [Apio2012]dispatching 左偏树
  • [BROADCASTING]tensor的扩散机制
  • [c++] 自写 MyString 类