图解Kafka的核心概念,一看就明白!

架构 2023-07-05 17:29:38
62阅读

 

照片来源于 Pexels

1、基本

Kafka 是一套流解决系统软件,能够让后端开发服务项目轻轻松松的互相沟通交流,是分布式架构中常见的部件。

2、经营者顾客

经营者服务项目 Producer 向 Kafka 推送信息,顾客服务项目 Consumer 监视 Kafka 接受信息。

一个服务项目能够另外为经营者和顾客。

3、Topics 主题风格

Topic 是经营者推送信息的总体目标详细地址,是顾客的监视总体目标。

一个服务项目能够监视、推送好几个 Topics。

Kafka 中有一个【consumer-group(顾客组)】的定义。

它是一组服务项目,饰演一个顾客。

如果是顾客组接受信息,Kafka 会把一条信息路由器到组里的某一个服务项目。

那样有利于信息的web服务,也便捷拓展顾客。

Topic 饰演一个信息的序列。最先,一条信息推送了。

随后,这条信息被纪录和储存在这个序列中,不允许被改动。

下面,信息会被发给此 Topic 的顾客。

可是,这条信息并不会被删掉,会再次保存在序列中。

再次推送信息。

像以前一样,这条信息会发给顾客、不允许被修改、一直呆在序列中。(信息在序列里能呆多长时间,能够改动 Kafka 的配备)

4、Partitions 系统分区

上边 Topic 的叙述中,把 Topic 看作了一个序列,事实上,一个 Topic 是由好几个序列构成的,被称作【Partition(系统分区)】。

那样能够有利于 Topic 的拓展。

经营者推送信息的情况下,这条信息会被路由器到此 Topic 中的某一个 Partition。

顾客监视的是全部系统分区并耗费任何人的事情。

经营者推送信息时,默认设置是朝向 Topic 的,由 Topic 决策放到哪一个 Partition,默认设置应用轮询对策。

还可以配备 Topic,让同种类的信息都是在同一个 Partition。

比如,解决客户信息,能够让某一个客户全部信息都是在一个 Partition。

比如,客户 1 推送了 3 条信息:A、B、C,默认设置状况下,这 3 条信息是在不一样的 Partition 中(如 P1、P2、P3)。

在配备以后,能够保证 客户 1 的全部信息都发至同一个系统分区中(如 P1)。

这一作用有什么作用呢?它是为了更好地出示信息的【层次性】。

信息在不一样的 Partition 是不可以确保井然有序的,只有一个 Partition 内的信息是井然有序的。

5、构架

Kafka 是群集构架的,ZooKeeper是关键部件。

ZooKeeper 管理方法着全部的 Topic 和 Partition。

Topic 和 Partition 储存在 Node 物理学连接点中,ZooKeeper承担维护保养这种 Node。

比如,有 2 个 Topic,分别有 2 个 Partition。

它是逻辑性上的方式,但在 Kafka 群集中的具体储存可能是那样的:

Topic A 的 Partition #1 有 3 份,遍布在每个 Node 上。

那样能够提升 Kafka 的稳定性和系统软件延展性。

3 个 Partition #1 中,ZooKeeper 会特定一个 Leader,承担接受经营者发过来的信息。

别的 2 个 Partition #1 会做为 Follower,Leader 接受到的信息会拷贝给 Follower。

那样,每一个 Partition 都带有了全量信息数据信息。

即便 某一 Node 连接点发生了常见故障,也不必担心信息的毁坏。

Topic A 和 Topic B 的全部 Partition 遍布很有可能就这样的:

谢谢阅读文章,期待对你有一定的协助!

编写:陶家龙

来源:https://timothystepro.medium.com/visualizing-kafka-20bc384803e7

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。