一、初识kafka

1. 基本概念

一个kafka集群包含若干的Producer、若干Broker、若干的Consumer,以及一个Zookeeper集群。Zookeeper是负责Kafka元数据管理、控制器选举等操作的。Producer将消息发送到Broker,Broker将消息存储都磁盘,Consumer从Broker订阅并消费消息。

在这里插入图片描述

Kafka体系中引入了一下三个术语。
(1) Producer:生产者,也就是发送消息的一方。生产者负责创建消息,然后将其投递到Kafka中。
(2) Consumer:消费者,也就是接收消息的一方。消费者连接到Kafka上并接收消息,进而进行相应的业务逻辑处理。
(3) Broker:服务代理节点。对于Kafka而言,Broker可以简单地看作一个独立的Kafka服务节点或Kafka服务实例。大多数情况下也可以将Broker看作一台Kafka服务器,前提是这台服务器上只部署了一个Kafka实例。一个或多个Broker组成了一个Kafka集群。一般而言,我们更习惯使用首字母小写的broker来表示服务代理节点。

在Kafka中还有两个特别重要的概念 ------ 主题(Topic)与分区(Partition)。主题可理解为一系列消息的集合,生产者向主题里面发送消息,消费者则订阅并消费主题中的消息。一个主题包含多个分区,同一个主题下分区包含消息是不同的,可以理解为将一个队列拆成了两个队列。

这里还有一个偏移量(offset)的概念,offset是分区中消息的唯一标识,注意:offset是不跨分区的。

在这里插入图片描述

每一条消息被发送到broker之前,会根据分区规则确定存储到哪一个分区,如果分区规则合理的话,消息会均匀的写入每一个分区。如果一个主题只有一个分区的话,那么这个文件所在的机器I/O会成为这个主题的瓶颈,而分区解决了这个问题。

Kafka为分区引入了副本(Replicas)机制,增加副本个数提升容灾能力。副本之间是"一主多从"的关系,leader负责读写,follower负责与leader的消息同步。leader失效时,从follower中选举一个成为leader继续提供服务。多副本机制实现了故障自动转移,保障某个broker失效时集群任然能继续使用。

分区中的所有副本统称为AR(Assigned Replicas)。所有与leader副本保持一定程度同步的副本(包括leader副本在内〕组成ISROn-Sync Replicas) 。与leader副本同步滞后过多的副本(不包括leader副本)组成OSR(Out-of-Sync Replicas)。由此可见,AR=ISR+OSR。在正常情况下,所有的follower副本都应该与leader副本保持一定程度的同步,即AR=ISR,OSR集合为空。

HW是HighWatermark的缩写,俗称高水位,它标识了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息。

在这里插入图片描述

LEO是LogEnd Offset的缩写,它标识当前日志文件中下一条待写入消息的offset。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上面几幅图
①:生产者将3、4写入leader
②:消息写入leader,follower进行同步
③:follower同步中,可能由于网络或者其他问题,导致消息同步滞后。
④:消息同步完成后,HW = LEO

2. 环境搭建

JDK安装https://blog.csdn.net/admin_15082037343/article/details/91598052
zookeeper安装https://blog.csdn.net/admin_15082037343/article/details/100045048
kafka安装https://blog.csdn.net/m0_46192647/article/details/123424090

集群与单机环境差不多,window环境路径分隔符使用"/“而不是”\\"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流年ln

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值