在我看来队列服务器是最简单的一种组件了。因为队列给我们下手的机会实在是并不多。我们只是用它,如果想改变它就只能去改代码,其他的都只是配置问题。
在当前的市场中,Kafka 算是用得非常火的一个队列服务器了,所以今天,我选择它来做一些解读。
虽然我在前面一直在强调分析的思路,但在这一篇中,我打算换个思路,不是像以前那样,直接给你一个结论型的思维导图,而是一起来分析一个组件,让我们看看从哪里下手,来观察一个被分析对象的相关配置。
了解 Kafka 的基本知识
我们先看一下这张图,以便更好地了解一个队列服务器。
这是 Kafka 官网上的一个图。从这个图中可以看到,对 Kafka 来说,这就像一个典型的集线器。那它里面的结构是什么样子的呢?根据我的理解,我画了一个如下的示意图:
在这个图中,有三个 Broker,也就是三个集群节点。每个消息有一个 leader partition,还有两个 follower partition。我没有画更多的 Producer 和 Consumer、Consumer Group,是觉得线太多了容易乱。
因为 Producer 和 Consumer 肯定会从 leader partition 中读写数据,而 Kafka 也保证了 leader 在不同 broker 上的均衡,所以 Kafka 的集群能力很好。