首页 > 其他 > 详细

kafka

时间:2021-06-14 17:27:33      阅读:24      评论:0      收藏:0      [点我收藏+]

kafka为什么采用消费者主动拉的模式:

kafka的性能非常高(qps10-20万(QPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,TPS 即 Transactions Per Second 的缩写,每秒处理的事务数目)

但凡下游消费者的能力达不到这个程度,就很容易把消费者打挂,也很容易导致消费者的消息堆积,严重的话会影响业务,消费者可以定制消费速率

Kafka 是?个分布式的基于发布/订阅模式的消息引擎系统

两种消费模式
技术分享图片

 

 

架构图
技术分享图片

 

 

?产者:Producer。向主题发布新消息的应?程序。消息有存储时间,默认是7天,仍在磁盘中
消费者:Consumer。从主题订阅新消息的应?程序。 一个partition只会给一个consumer消费,Consumer可以消费一个broker里的多个partition
消息:Record。Kafka是消息引擎嘛,这?的消息就是指Kafka处理的主要对象。
主题:Topic。主题是承载消息的逻辑容器,在实际使?中多?来区分具体的业务。
分区:Partition。?个有序不变的消息序列。每个主题下可以有多个分区。(每一个topic都有多个partition,每个partition2-3个副本,每一个副本分布在不同的broker上)
 
消息位移:Offset。表示分区中每条消息的位置信息,是?个单调递增且不变的值。这个位置记录在broker的一个topic里面,专门用来存储offset
副本:Replica。Kafka中同?条消息能够被拷?到多个地?以提供数据冗余,这些地?就是所谓的副
本。副本还分为领导者副本和追随者副本,各?有不同的??划分。副本是在分区层级下的,即每个分
区可配置多个副本实现?可?。
消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有??的消费者位移。
消费者组:Consumer Group。多个消费者实例共同组成的?个组,同时消费多个分区以实现?吞吐。
重平衡:Rebalance。消费者组内某个消费者实例挂掉后,其他消费者实例?动重新分配订阅主题分区
的过程。Rebalance是Kafka消费者端实现?可?的重要?段。
技术分享图片

 

 如果要保证kafka的全局有序,可在一个topic下只挂一个分区,单分区是数据有序的

 

高性能:建立的分区多,是为了提高kafka的并行度

 

 

kafka特性深?剖析
#?志存储
Kafka 中的消息是以主题为基本单位进?归类的,各个主题在逻辑上相互独?。每个主题?可以分为?
个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会
根据分区规则被追加到指定的分区中,分区中的每条消息都会被分配?个唯?的序列号,也就是通常所
说的偏移量(offset)。
不考虑多副本的情况,?个分区对应?个?志(Log)。为了防? Log 过?,Kafka ?引?了?志分段
LogSegment)的概念,将 Log 切分为多个 LogSegment,相当于?个巨型?件被平均分配为多个相
对较?的?件,这样也便于消息的维护和清理。
 

 cd log/tmp/kafka-logs  查看日志

技术分享图片

 

 

 

 

技术分享图片

 

 #分区副本剖析

Kafka 通过多副本机制实现故障?动转移,在 Kafka 集群中某个 broker 节点失效的情况下仍然保证服
务可?。
技术分享图片

 

 我们该如何确保副本中所有的数据都是?致的呢?副本放在不同的broker中,acks=all或-1

 

第?,副本分成两类:领导者副本(Leader Replica)和追随者副本(Follower Replica)。
第?,Follower副本是不对外提供服务的。这就是说,任何?个追随者副本都不能响应消费者和?产者
的读写请求。所有的请求都必须由领导者副本来处理,或者说,所有的读写请求都必须发往领导者副本
所在的Broker,由该Broker负责处理。
第三,当领导者副本挂掉了,或者说领导者副本所在的Broker宕机时,Kafka依托于ZooKeeper提供的
监控功能能够实时感知到,并?即开启新?轮的领导者选举,从追随者副本中选?个作为新的领导者。(拿到isr副本,按顺序选出新的leader)

 

?Leader副本重启回来后,只能作为追随者副本加?到集群中。
ISR AR
分区中的所有副本统称为 AR,? ISR 是指与 leader 副本保持同步状态的副本集合,当然 leader
副本本身也是这个集合中的?员。
失效副本
正常情况下,分区的所有副本都处于 ISR 集合中,但是难免会有异常情况发?,从?某些副本被剥离出
ISR 集合中。在 ISR 集合之外,也就是处于同步失效或功能失效(?如副本处于?存活状态)的副本统
称为失效副本,失效副本对应的分区也就称为同步失效分区,即 under-replicated 分区
 
技术分享图片

 

 

 

 

 

技术分享图片

 

kafka

原文:https://www.cnblogs.com/tangguanlan/p/14881761.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!