前言
「 Kafka 」 作为我们开发中常常选取采用的消息中间件,它的使用我们一定或多或少的有所了解。可是你真的了解它的常用名词,比如 「 brocker 」、「 consumer 」 或者说 「 producer 」 等等一系列的名词含义吗?
不了解没有关系,接下来我们来简单了解一下这些小知识点,相信对你学习掌握 「 Kafka 」 这套优秀的消息中间件,一定会有很大的帮助。
并且在后续还会有 「 Kafka 」 一些常见的问题阐述,以及我们如何解决这些问或者说如何避免这些问题。
🎯目录
- kafka常见名词解释
- kafka常见问题以及解决
🎯正式开始
1.kafka常见名词解释
在介绍这些名词之前,我们先从宏观角度看一下,「 Kafka 」 系统中所常用的名词都有哪些,了解了这些,我们在针对某个名词做一一解释,逐个击破。
如下图所示,我们所介绍的kafka名词下图包圆了:
对kafka常见名词有了一个整体的概念,我们还缺少一样东西,我们不能够对名词直接介绍,还需要对他们的整体结构做一定的了解。不然就犹如是空中楼阁,虚无缥缈的东西,容易让人云里雾里。
下图,就是一个kafka系统所大致包含的一些结构,当然了,此图并不会面面俱到,只是针对全局做一些了解。
kafka 架构简图:
Topic(主题)和 Partition(分区)
「 topic 」主题,「 Kafka 」按照「 topic 」 对消息进行分类,从而来决定将消息放到那个 「 topic 」下。比如用户消息,我们可以发送到名为 「 user_message 」 的 「 topic 」 上,类似的支付消息我们可以发送到 「 pay_message 」 的 「 topic **」**上面。
这里值得注意的是,topic 主题概念是逻辑上的概念,是为了方便消费者订阅以及生产的的消息发布,实际上消息在结构中是按照 「partition」(分区)存在的。
「partition」 是物理上的概念,它也是真正存放消息的地方,同一个 「 topic 」 中可能存在一个或多个分区。然后每一个分区的消息是有序的。
Broker、Leader 和 Follower
「 Broker 」 解释起来就是一个单独的 「 Kafka 」 节点,一个 「 Kafka 」集群是由一个或者多个 「 Broker 」 节点所组成的。
我们都知道在分布式系统中会有单节点故障问题。所以 「 Kafka 」 针对于这个问题,将数据同步到了多个节点中,这样就算一个节点出现故障,也能够立即启用备份好数据的节点&#x