kafka基本概念

Topic

- 逻辑概念,同一个Topic的消息可以分布在不同的节点上(Broker)
- 一个Topic包含一个或多个分区(Partition)
- 每条消息都属于且一个Topic
- Producer发布数据时.必须指定将该消息发个那个Topic
- Consumer消费时,也要指定订阅哪个Topic的消息
Partition

- 物理概念,一个Partition只分布于一个Broker(没有备份的情况下)
- 一个Partition物理上只对应一个文件夹
- 一个Partition包含多个Segment(对用户透明)
- 一个Segment对应一个文件
- Segment由一个个不可变记录组成
- 记录只会被append到Segment.不会被删掉删除或修改
- 清除过期日志时,直接删除一个或多个Segment
Consumer
- 特性:
- 高吞吐,低延迟,kafka每秒可以处理几十万消息,延迟最低只有几毫米,每个主题可以分多个分区
,消费组对分区进行消费操作
- 可扩展性,kafka集群机制热扩展
- 持久性,可靠性,消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
- 容错性,允许集群中节点失败(最低至少保留一个即可)
- 高并发,支持数千个客户同时读写
- 使用场景
- 日志收集
- 消息系统
- 用户活动跟踪
- 运营指标
- 流式处理,比如spark streaming和strom
- 优势
- 可伸缩性
- 集群在运行期间可以轻松扩展或收缩
- 可以扩展一个kafka主题来包含更多的分区,意味着单个主题可以存储的数据是没有限制的
- 容错性和可靠性
- 吞吐量
Producer
- 生产者即数据的发布者,该角色将消息发布到kafka的topic中,broker接收到生产者发送的消息后,
broker将该消息追加到当前用于追加数据的segment中,生产者发送的消息,存储到一个partition中,
生产者也可以指定数据存储的partition
其他
- leader:每个partition有多个副本,其中有且仅有一个座位leader,leader是当前负责数据的读写的partition
- follower:follower跟随leader,所有写请求都通过leader路由,数据变更会广播给所有follower,
follower和leader保持数据同步,如果leader失效,则从follower中选举一个新的leader,当follower和leader
同时挂掉,卡住或者同步太慢,leader会把这个follower从""in sync replicas(ISR)"列表删除,重新创建一个follower
- AR(Assigned Replicas):分区中所有的副本统称为AR
- ISR(IN Sync Replicas):所有和leader部分保持一定程度的副本(包括leader)组成ISR
- OSR(Out Of Sync Replicas):和leader副本同步滞后过多的副本
- Zookeeper:Zookeeper负责维护和协调broker(节点),当kafka系统中新增了broker或者某个
broker发生故障失效时,由Zookeeper通知生产者和消费组,生产者和消费组依据Zookeeper的broker状态信息
和broker协调数据的发布和订阅任务
- HW(high Watermark):高水位,标识一个特定的offset,消费组只能拉取到这个offset之前的消息
- LEO(log End Offset):即日志末端唯一,记录该副本底层日志中下一条消息的位移值.是下一条消息,
如果LEO=10,标识该副本存储了10条消息,位移范围是[0,9]
相关文章:
猜你喜欢
-
2021-08-23
-
2021-05-06
-
2021-12-03
相关资源
-
下载
2023-02-11
-
下载
2022-12-18
-
下载
2021-06-06