ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大数据术语之Kafka

2022-01-11 19:32:21  阅读:116  来源: 互联网

标签:术语 副本 消费者 分区 Kafka Topic 消息 数据


生产者:Producer。向主题发布新消息的应用程序。
消费者:Consumer。从主题订阅新消息的应用程序。
消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。
消息:Record。Kafka是消息引擎嘛,这里的消息就是指Kafka处理的主要对象。
消息位移:Offset。表示分区中每条消息的位置信息,是一个单调递增且不变的值。
主题:Topic。主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。
分区:Partition。一个有序不变的消息序列。每个主题下可以有多个分区。
副本:Replica。Kafka中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本,副本还分为领导者副本和追随者副本,各自有不同的角色划分。
副本是在分区层级下的,即每个分区可配置多个副本实现高可用。
重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程,Rebalance是Kafka消费者端实现高可用的重要手段。
ISR
    ISR(In-Sync Replicas),副本同步队列。ISR中包括Leader和Follower。如果Leader进程挂掉,会在ISR队列中选择一个服务作为新的Leader。
任意一个维度超过阈值都会把Follower剔除出ISR,存入OSR(Outof-Sync Replicas)列表,新加入的Follower也会先存放在OSR中。
Ack
    Ack=0,相当于异步发送,消息发送完毕即offset增加,继续生产。
    Ack=1,leader收到leader replica 对一个消息的接受ack才增加offset,然后继续生产。
    Ack=-1,leader收到所有replica 对一个消息的接受ack才增加offset,然后继续生产。
分区分配策略
    在 Kafka内部存在两种默认的分区分配策略:Range和 RoundRobin。
    Range是默认策略。Range是对每个Topic而言的(即一个Topic一个Topic分区),首先对同一个Topic里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。
然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者线程将会多消费一个分区。
    RoundRobin:前提:同一个Consumer Group里面的所有消费者的num.streams(消费者消费线程数)必须相等;每个消费者订阅的主题必须相同。
第一步:将所有主题分区组成TopicAndPartition列表,然后对TopicAndPartition列表按照hashCode进行排序,最后按照轮询的方式发给每一个消费线程。
Kafka数据积压
    1)如果是Kafka消费能力不足,则可以考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。(两者缺一不可);
    2)如果是下游的数据处理不及时:提高每批次拉取的数量。批次拉取数据过少(拉取数据/处理时间<生产速度),使处理的数据小于生产的数据,也会造成数据积压;
数据监控: KafkaManager、KafkaEagle

标签:术语,副本,消费者,分区,Kafka,Topic,消息,数据
来源: https://blog.csdn.net/qq_30003943/article/details/122439513

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有