企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] ### **基本概念** Kafka中的概念有Broker、Topic、Partition、Replication-Factor。 * Broker:kafka集群中的每个kafka实例(进程)就是一个broker * Topic:topic是kafka集群中一个逻辑概念,主要用来实现多租户(多用户)。当往kafka集群写消息时,需要指明往哪个topic写;读消息也是 * Partition:创建topic时可以指定分区数,默认为1;当往topic中写消息时,消息实际是写到该topic的某个分区中;分区是一个物理概念,一个分区对应着一个broker下的一个磁盘目录,写入该分区的消息实际上就是保存到broker对应的磁盘目录下 * Replication-Factor:副本因子;当创建topic的时候,可以指定该topic下分区的副本因子;如果副本因子为1,说明该topic下的每个分区只有一份数据;如果副本因子为2,则说明该topic下的每个分区有两份数据;一个分区的两个副本位于不同的broker上 另外,分区的副本有主副本(Leader)和从副本(Follower)之分,个leader和follower都是一个broker(不同partition的副本可以在同一个broker)。Kafka会把所有partition的leader平均分配到broker上,**所有的读写都只由leader来完成**,follower只从leader同步消息,并不对外服务(参考[此文](https://juejin.cn/post/6844903862885679112)。 下图可以加深理解: ![](https://img.kancloud.cn/54/db/54db5808650c94536081e579d8039566_805x549.png) ### **FAQ** **Q:生产者向topic发送消息的时候,需要指明partition吗?** ****