Kafka的运行流程


前言

Kafka也用了一段时间了,一直想找个机会写写文章,趁着51空档期码一下。这篇文章主要想讲清Kafka的工作原理~

结构图

如图,官网给出的架构图很简单,就多个生产者和消费者通过一个Kafka集群进行生产、消费信息。但在消费者和生产者、Kafka集群之下却有着多个名词(ps:每门技术之下都有好多花里胡哨的名词,这个有点烦人)

在这里插入图片描述

如下图所示,将上图进行细分后,有点儿群魔乱舞,但乱中有序,下面会对每个成员进行阐述。

在这里插入图片描述

角色

Broker(掮客)

Broker中文可翻译为掮客,其实就是生成这和消费之间的一个中介,生产者和消费者通过broker产生一点儿联系。其实它就是一台台的服务器,每台服务器有唯一的broker id。

Producer(生产者)和 Consumer(消费者)

这个比较容易理解,生产者就我们生产消息的应用程序,而消费者对应的则是消费消息的应用程序。

Group(组)

组的概念更多的针对消费者而言,多个消费者形成一个组,通过group id进行指定。它的设计可以帮我们解决重复消费的问题,一个topic只能被group内的一个消费者消费(consumer)消费,但可以被不同组(group)内的消费者消费。

Topic(主题)

Topic,主题是一个逻辑概念,实际上并不存在。消费者通过Topic(主题)消费消息,生产者生产的消息通过Topic来进行存储(文章给的图没有明确指示出来)。一个Topic之下有多个分区( Partition),一个Topic下的消息可能来自不同的服务器(broker)

Partition(分区)

分区,有些文章又叫分片?Topic是虚的,partition是物理存在的,每个Partition对应的是一个个的文件夹。Kafka默认使用的是hash进行分区,所以,一个Topic的消息可能被分布在不同的partition上。

Replication(复制)

为了保证分区容错性,把消息放在一个partition上明显不达标,所以将一个分区复制一份到另一个分区中,这个过程就是Replication,其实从中文意思也大概能猜到啦~

Ledger(领导)

分区又分为主分区和副本分区,其中Ledger(领导)就是我们的主分区,正常运行的情况下,生产者和消费者通过topic操作的都是主分区。

Follow(员工)

副本分区,就是这里的Follow(员工)了,Follow通过replication,同步主分区的消息,达到分区容错的目的。主分区Ledger和副本分区Follow可以在不同的broker机器上

总结

捋清各个成员的含义再看这张图,是不是很容易理解。在明白基本的运行流程后,我们后面再刨根问底理解各个实现环节。如生产者提交消息的策略?kafka集群如何表明自己活着?ledger同步到follow的过程?等等问题。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

legendaryhaha

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

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

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

打赏作者

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

抵扣说明:

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

余额充值