【kafka】深入理解kafka第一章-初识kafka

1、kafka分布式流式处理平台,以高吞吐、可持久化、可水平扩展、支持流数据处理等而被广发使用

2、kafka三大角色

消息系统:系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性(增加分区达到水平扩展)、可恢复性、消息顺序保障(分区消息顺序性)、回溯消费

存储系统:消息持久化、多副本机制

流式处理平台:流式处理类库(窗口、连接、变换和聚合)

3、kafka架构

【kafka】深入理解kafka第一章-初识kafka_第1张图片

 

说明:

producer:生产者,生产消息投递到kafka

consumer:消费者,连接到kafka接收消息

broker:简单看作一个独立kafka服务节点或kafka服务实例

主题:消费者消费生产者投递到broker的消息,通过主题,细分为多个分区,同一主题下分区包含的消息不同

分区:属于某一个主题,分区类似于追加日志文件,消息在追加到分区日志文件时会分配一个特定偏移量(offset),offset是消息在分区中唯一标识,kafka通过它来区分顺序性,因此kafka保证分区有序而不是主题有序

kafka为分区引入多副本机制,通过增加副本机制实现了故障的自动转移,副本之间是“一主多从”关系,leader负责读写请求,follower副本负责与leader副本消息同步,副本处于不同broker中。由于follower与leader同步会造成一定滞后,引入:AR = ISR + OSR 机制;(AR是所有副本集合;ISR属于一定程度滞后范围内副本;OSR属于超过滞后范围内副本),保证淘汰一部分滞后严重的follower副本;当leader副本出现故障时,从follower副本(从ISR集合选,OSR不参与选举)中重新选举新的leader副本对外提供服务。

ISR关系到HW和LEO的取值;HW标识了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息;LEO标识当前日志文件中下一条待写入消息的offset

kafka消费端具有一定容灾能力,consumer使用拉模式从服务端拉取消费,并且保存消费的具体位置,当消费者宕机后恢复上线可以根据之前保存的消费位置重新拉取需要的消息进行消费,避免消息丢失。

你可能感兴趣的:(❀❀❀❀❀❀-中间件及其调优)