话不多说,线上一张基本名词思维导图

Broker:
Kafka集群中包含一个或者多个服务器,每个服务器节点称为一个broker。

Producer:
生产者。即消息的发布者,其会将某topic的消息发布到相应的partition中。

Topic:
主题、逻辑概念,一类消息的标识。Kafka可以同时负责多个topic的分发。

Partition:
kafka 中 Topic 被分成多个 Partition 分区。Topic 是一个逻辑概念,Partition 是最小的存储单元,掌握着一个 Topic 的部分数据。每个 Partition 都是一个单独的 log 文件,每条记录都以追加的形式写入。
1、 一个Topic可以配置几个Partition,
2、 Producer发送的消息分到不同的Partition中
3、 Consumer接收数据是按照 Consumer Group(消费组)来接接收,kafka确保每个Partition在同一个Consumer Group(消费组)只能由其中一个消费者消费。

Partitioner(分区器):
分区选择器,作用就是为消息分配分区。默认使用murmur2对key进行hash计算,然后对于总分区数去模,得到对应的分区号,然后消息就发往该分区。Producer可以实现自定义分区器,或者指定特定的分区。只需要实现Partitioner接口。

Partition Leader
Kafka为了到达高可用,每个分区(Partition)都会多个副本,其中有且仅有一个作为leader,leader负责当前消息的读写Partition。

Partition Follower
所有 Follower 都需要从 Leader 同步消息,Follower 与 Leader 始终保持消息同步。
partition leader 与 follower 是主备关系,而非主从。

AR
Assigned Replicas 同步副本,AR=ISR+OSR

ISR
ISR,In-Sync Replicas,是指及时副本同步列表,消息同步的频率或者时效达到一定要求副本。

OSR
Outof-Sync Replicas 消息同步存在滞后情况的副本集合
ProducerInterceptor(生产者拦截器)
拦截器功能最早出现在kafka0.10.0.0中,kafka一共两种拦截器:生产者拦截器、消费者拦截器。
生产者拦截器可以用来在消息发送前做一些处理,例如按照某个规则过滤不符合要求的消息、修改消息的内容等,也可以用来在发送回调逻辑前做一些定制化的需求。比如统计类的工作。

RecordAccumulator(消息收集器)
Kafka中的消息发送并不是一条一条发送的,因为一条条发送效率低,对网络带宽也有一定影响。因此kafka生产者(Producer)主线程,会建立一个消息缓存区,用于存储需要发送的消息,该缓存区的大小可以通过buffer.memory参数配置,默认值为33554432B,即32M。该缓存区会以分区为单位维护一个双端队列,将消息缓存起来。当达到一定的条件,会唤醒生产者(Producer)的Sender线程发送改缓存队列中的消息。如果生产者发送消息的速度超过发送到服务器的速度,则会导致空间不足。这个时候kafkaProducer的send()方法调用会被阻塞。要么抛出异常。

ProducerBatch:
消息批记录,双端队列的元素。及消息累加器中的最小单位。

Consumer:
消费者,一个消费者可以消费多个topic,同时还消费Topic中指定的分区(Partition)

Consumer Group(消费者组):
Consumer Group是kafka提供的可扩展的且具有容错性的消费者机制。组内可以有多个消费者,他们共享一个Group ID .组内的所有消费者会协调在一起平均消费订阅素有主题的所有分区。
Kafka可以保证在稳定的状态下,一个paritition中的消息只能被同一个Consumer Group中的一个Consumer消费,而一个组内的consumer只会消费某一个或特定几个paratition。一个消息可以同时被多个consumer group消费。

Serializer(序列化):
生产者通过(Serializer)序列化将将对象转换成字节数组,才能够通过网络发送给kafka 。而在消费端需要使用(DeSerializer)反序列化把接收到的字节数组转换成相应的对象。为了方便key和value都需要序列化。常见的序列化方式ByteArraySerializer、ByteBufferSerializer、BytesSerializer、Long(Double Integer String)Serializer。要自定义序列化的话需要实现Serializer接口。

offset :
消息偏移量,offset是consumer position,Topic的每个Partition都有各自的offset.
首先我们看下生产者Offset.

每个分区都有一个offset, 这个offset就是生产者的offset,同时也是这个分区的最新最大的offset。
消费者offset

这是某一个分区的offset情况,我们已经知道生产者写入的offset是最新最大的值也就是12,而当Consumer A进行消费时,他从0开始消费,一直消费到了9,他的offset就记录在了9,Consumer B就纪录在了11。等下一次他们再来消费时,他们可以选择接着上一次的位置消费,当然也可以选择从头消费,或者跳到最近的记录并从“现在”开始消费。

Rebalance
rebalance本质上是一种协议,规定了一个consumer group下的所有consumer如何达成一致来分配订阅topic的每个分区。比如某个group下有20个consumer,它订阅了一个具有100个分区的topic。正常情况下,Kafka平均会为每个consumer分配5个分区。这个分配的过程就叫rebalance,那在什么情况下会rebalance。
1、组成员发生变更(新consumer加入组、已有consumer主动离开组或已有consumer崩溃了——这两者的区别后面会谈到)
2、订阅主题数发生变更——这当然是可能的,如果你使用了正则表达式的方式进行订阅,那么新建匹配正则表达式的topic就会触发rebalance
3、订阅主题的分区数发生变更

Coordinator(协调者)
1、Transaction Coordinator
PID —通过—> Transaction Coordinator—获得—>Transaction ID
为了实现跨分区跨会话的事务,需要引入一个全局唯一的Transaction ID,并将Producer获得的PID和Transaction ID绑定。这样当Producer重启后就可以通过正在进行的Transaction ID获得原来的PID。
Kafka引入了一个新的组件Transaction Coordinator。Producer就是通过和Transaction Coordinator交互获得Transaction ID对应的任务状态。Transaction Coordinator还负责将事务所有写入Kafka的一个内部Topic,这样即使整个服务重启,由于事务状态得到保存,进行中的事务状态可以得到恢复,从而继续进行。
2、consumer coordinator
consumer coordinator存在的唯一目的就是保存consumer提交的位移offset。
consumer需要定期向Kafka提交自己的位置信息,这一过程称为位移提交(offset commit)。consumer会在所有的broker中选择一个broker作为consumer group的coordinator,用于实现组成员管理、消费分配方案制定以及位移提交等。选择该coordinator的依据就是kafka的内置topic(_consumer_offsets)。该topic与普通topic一样,配置多个分区,每个分区有多个副本,它存在的唯一目的就是保存consumer提交的位移。

kafka基本名词解释大全相关推荐

  1. mysql中db的名词解释_数据库常用名词解释大全

    ◆DB:数据库(Database), DB是统一管理的相关数据的集合.DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性. ◆超键:在关系中能唯一标识元组的属性集称为关系模式 ...

  2. 地理信息系统专业考研 GIS专业考研 名词解释大全[转]

    转载:http://www.cnblogs.com/sunliming/archive/2010/05/28/1746047.html 地理信息系统专业考研 GIS专业考研 名词解释大全 1.    ...

  3. 地理信息系统名词解释大全(二)

    地理信息系统名词解释大全 名词解释大全(一).名词解释大全(二).名词解释大全(三) 名词解释大全(四).名词解释大全(五).名词解释大全(六) 名词解释大全(七).名词解释大全(八).名词解释大全( ...

  4. 地理信息系统名词解释大全(七)

    地理信息系统名词解释大全 名词解释大全(一).名词解释大全(二).名词解释大全(三) 名词解释大全(四).名词解释大全(五).名词解释大全(六) 名词解释大全(七).名词解释大全(八).名词解释大全( ...

  5. 地理信息系统名词解释大全(一)

    地理信息系统名词解释大全 名词解释大全(一).名词解释大全(二).名词解释大全(三) 名词解释大全(四).名词解释大全(五).名词解释大全(六) 名词解释大全(七).名词解释大全(八).名词解释大全( ...

  6. 地理信息系统名词解释大全(四)

    地理信息系统名词解释大全 名词解释大全(一).名词解释大全(二).名词解释大全(三) 名词解释大全(四).名词解释大全(五).名词解释大全(六) 名词解释大全(七).名词解释大全(八).名词解释大全( ...

  7. 地理信息系统名词解释大全(九)

    地理信息系统名词解释大全 名词解释大全(一).名词解释大全(二).名词解释大全(三) 名词解释大全(四).名词解释大全(五).名词解释大全(六) 名词解释大全(七).名词解释大全(八).名词解释大全( ...

  8. 地理信息系统专业考研 GIS专业考研 名词解释大全

    地理信息系统专业考研 GIS专业考研 名词解释大全(自己考研时候搜集的..晒出来) 1.    地理信息系统(南大95.南大96.南大03.中科院03.中科院04.华东师00.中南03.浙大99)GI ...

  9. 名词解释计算机辅助工程CAE,EDA名词解释大全

    <EDA名词解释大全>由会员分享,可在线阅读,更多相关<EDA名词解释大全(2页珍藏版)>请在人人文库网上搜索. 1.大学生 EDA考试专用,名词解释,很有用AS主动串行PSA ...

最新文章

  1. GDCM:转储一个DICOM文件,显示DICOM中的结构和值的测试程序
  2. 记一次游戏私服getshell过程
  3. apache.camel_Apache Camel 2.12 –支持后退,以减少不太积极的轮询路线
  4. Web框架——Flask系列之session机制(十六)
  5. 我所知道的几种display:table-cell的应用
  6. WPF学习之路由事件
  7. 时间序列分析工具箱——timetk
  8. 如何安全地进行ddos压力测试
  9. i.mx6 linux 占用率,i.MX6UL在Linux和Windows平台下SD启动卡测试步骤
  10. Vulnerable Javascript library
  11. SQL语句的执行计划
  12. 终端模拟器免ROOT安装Linux,【全机型通用】不用电脑,用终端模拟器刷入第三方Recovery...
  13. CPU工作方式、多核心、超线程技术详解[转贴]
  14. index.html请连接网络,index.html
  15. 巴西龟饲养日志----肺炎治疗情况
  16. 基于YOLOv3的车辆号牌定位算法【文末送书】
  17. sql集合.联合查询
  18. 英读廊——为什么夏天白天打瞌睡晚上却睡不着?
  19. 【OPC UA】C# 通过OpcUaHelper建立OPC客户端访问KEPServerEx6 OPC服务器数据
  20. mysql 统计 打卡数据_根据考勤机数据,有重复打卡,统计上班天数的简单办法(文末送书)...

热门文章

  1. linux系统或者虚拟机下无法挂载64GU盘的解决办法
  2. Kill Killall pkill
  3. 除了桃色陷阱和网购骗局 还有哪些骗术在春节期间出现?
  4. 电子电路学习笔记(10)——整流桥
  5. GNURadio+HackRF小实验(FM发射与接收)
  6. UML(一)——面向对象方法与软件过程模型
  7. 中科大文献管理笔记——Endnote使用
  8. 全自动刷式过滤器工作原理
  9. 为什么说:善战者,无赫赫之功
  10. 原生JS实现公告栏文字向上滚动