首页 > 其他分享 >Kafka笔记系列-概念相关

Kafka笔记系列-概念相关

时间:2024-11-04 14:01:07浏览次数:1  
标签:消费 系列 消费者 partition broker 笔记 Kafka topic 消息

消息队列的主要功能

连接服务、消息路由、消息传递、数据持久化、日志记录

消息队列基本分类

1、点对点
生产者发送消息到队列中,消费者从队列中取出并消费。
消息在消费以后,队列中不再有存储,队列可以有多个消费者,但是一个消息只能被一个消费者消费
2、发布订阅模式
生产者发布消息到主题topic中,同时有多个消费者订阅topic,消息会被所有订阅者消费

Kafka介绍

1、没有中心主节点的概念,集群所有服务器对等,可以在不更改任何配置的情况下实现服务器的添加和删除,生产者和消费者也可以随意重启上下线
2、broker是kafka服务器,里面还有topic和partition的概念,topic即主题,用于建立生成者和消费者之间的订阅关系,生产者发送消息到指定的topic下,消费者从指定的topic消费消息
3、partition即消息分区,一个topic下会被划分为多个分区,可以同时放在多台服务器上,每个partition都是一个有序的队列,partition中的每条消息都会被分配一个有序的offset.
4、group即消费者分组,用于归类消费者,因为多个消费者可以共同消费一个topic下的消息,每个消费者消费一部分
5、offset偏移量,消费者需要知道消息在文件中的偏移量

一些特点

1、消息在broker中通过日志追加的方式进行持久化存储,并进行分区
2、消息首先会存入buffer中,当消息的个数或者大小达到阈值时,再进行刷盘
3、消息的冗余和可靠性是由分区副本机制来实现的,每个主题的分区可以配置多个副本并存储在不同的broker上,即使一个宕机,也可以选择一个新的副本来处理
4、broker不保存订阅者的状态,由订阅者自己跟踪和管理自己消费的偏移量,消费者可以选择在消费消息后立即提交偏移量,也可以在处理完成一批消息后批量提交
5、虽然broker不会主动管理consumer的offset,但是consumer会将offer存在broker的特殊主题中,使得消费者故障恢复时可以从上次提交的偏移量开始继续消费
6、正是由于broker不存储offset,因此消息的删除策略不能依赖于消费状态,而是依赖于时间的保留策略,默认保留七天,然后被删除,这是SLA策略,即服务水平保证
7、消息订阅者可以回滚到任意的位置重新进行消费,当订阅者故障时,可以选择最小的offset进行消息的重新读取
8、每条消息包含三个属性,即:offset(唯一标识)、messageSize(消息大小)、data(消息内容)
9、kafka基于文件存储,通过分区可以将日志内容分散到多个server上,以避免文件尺寸达到单机磁盘的上线,同样,通过划分分区可以容纳更多的consumer,提高消费能力。
10、每个partition只会被一个consumer消费,一个consumer可以消费多个partition,因此同一个group中,consumer的个数不能大于partition的个数
11、存储时会根据id和Offset建立稀疏索引,保证log文件的访问速度

标签:消费,系列,消费者,partition,broker,笔记,Kafka,topic,消息
From: https://www.cnblogs.com/lilizzyy/p/18525066

相关文章

  • clean-code-javascript系列之并发
    使用Promises,不要使用回调回调不够简洁,因为他们会产生过多的嵌套。在ES2015/ES6中,Promises已经是内置的全局类型了,使用它们吧!不好的:require('request').get('https://en.wikipedia.org/wiki/Robert_Cecil_Martin',(requestErr,response)=>{if(requestErr......
  • 如何选择最适合的消息队列?详解 Kafka、RocketMQ、RabbitMQ 的使用场景
    引言在日常开发中,消息队列已经成为业务场景中几乎不可或缺的一部分。无论是订单系统、日志收集、分布式事务,还是大数据实时流处理,消息队列都在支撑着这些关键环节。目前市面上常用的消息队列有三种(ActiveMQ虽然在企业集成中仍有应用,但由于性能和扩展性在高并发、大数据量......
  • 某龙潮逆向笔记 (不定期更新)
    Unity游戏啊,先分析一下文件,Unity2021.3,AB包没加密,Lua看着像异或加密,还有HybridCLR的dll应该是AES之类的看到了libNetHTProtect.so和libmsaoaidsec.so两位老朋友,上frida一把梭!果不其然一开frida就闪退,看闪退的时机大概率在il2cpp前就已经检测了…干掉initDeviceFinger函数就能愉......
  • 《AI创作背景后的版权陷阱》学习笔记
    1.AI内容生产,会侵犯他人版权吗?2.我用AI生产内容,我享有版权吗?3.如果我享有版权的话,我该怎么保护?别人盗用我的作品怎么办? (一)只是产权主要包括  ##版权的标志01  版权:版权即著作权指文学、艺术、科学作品的作者对其作品享有的权利。保护对象:具有独创性,并能以某种......
  • 【笔记/模板】单调栈-单调队列
    单调栈定义单调栈即满足单调性的栈结构。通过只在一端进出,从而维护一个数在前/后的第一个大于或小于它的数。操作/方式首先按照特定的顺序遍历。如果要求出最小值,就要将栈顶大于入列元素的所有数全部弹出。此时候的栈顶就是直到当前下标的答案。加入这个元素并且继续......
  • 【笔记/模板】二叉搜索树-平衡树
    二叉搜索树www.luogu.com.cn定义二叉搜索树(\(\text{BinarySearchTree}\))是一种形状如二叉树的数据结构,用于快速查找和增加删除操作,它有如下几个特殊性质:空树是二叉搜索树。若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。若二叉搜索树的右......
  • 【笔记/模板】排序算法
    【模板】快速排序-洛谷1.冒泡排序排序原理:每次将未确定部分的相邻两个值对比,设为\(a_{i},a_{i+1}\),如果\(a_{i}>a_{i+1}\),则对这两个值进行交换,可以使用swap来快速对两个值进行交换。那么,这样一轮交换下去,第一个数就可以确定是最小的了。以此类推,直到所有值都被确定,就得出......
  • 【笔记/模板】割点和桥
    割点对于一张无向图\(G=(V,E)\),使得H是G的连通子图,且不存在\(F\)满足\(H\subsetneqF\inG\)且\(F\)为连通图,则称\(H\)是\(G\)的一个连通块/连通分量(connectedcomponent),又叫极大连通子图。由此,我们可以对割点做出如下定义:对于一个无向图,如果把一个点删除后......
  • 【笔记/模板】线段树(改)
    线段树线段树是OI竞赛中最强大的数据结构之一,可以用来维护和、积以及最值等具有合并性质的信息。一般线段树P3372【模板】线段树1-洛谷|计算机科学教育新生态(luogu.com.cn)P3373【模板】线段树2-洛谷|计算机科学教育新生态(luogu.com.cn)以模板一为例:cla......
  • 【笔记/模板】无向图的双连通分量
    边双连通分量定义在一张联通的无向图中,对于任意两点\(u\)和\(v\)​,删去两点之间任意一条边,都无法使其不连通(即连通数不变),我们就说这两点是边双连通。对于一个无向图中的极大边双连通的子图,我们称这个子图为一个边双连通分量。根据【笔记/模板】割点和桥中可知,如果......