【发布时间】:2020-10-01 08:50:50
【问题描述】:
一个topic通常驻留在broker(服务器进程)中,并且有多个分区,但它能否跨越多个broker或节点(机器)?
也就是说,假设一个主题分为两个分区,分区 1 和分区 2。同一个topic的partition-1可以属于broker-1,partition-2可以属于不同的broker-2还是完全属于不同的node?p>
【问题讨论】:
标签: apache-kafka
一个topic通常驻留在broker(服务器进程)中,并且有多个分区,但它能否跨越多个broker或节点(机器)?
也就是说,假设一个主题分为两个分区,分区 1 和分区 2。同一个topic的partition-1可以属于broker-1,partition-2可以属于不同的broker-2还是完全属于不同的node?p>
【问题讨论】:
标签: apache-kafka
Kafka 集群由一台或多台服务器(Kafka 代理)组成。
每个代理可以有一个或多个主题。 Kafka 主题分为多个分区,每个分区可以放置在单个或单独的机器上,以允许多个消费者并行读取一个主题。
【讨论】:
是的,一个主题的不同分区可以存储在多台机器上。但是,单个分区必须完全存储在一台机器上。
【讨论】:
sh kafka-reassign-partitions.sh 脚本手动完成。 [1]:cwiki.apache.org/confluence/display/KAFKA/…
Kafka Broker 说明了接收请求并执行特定操作的控制器或服务器的类型。例如,Kafka 代理接收来自生产者的消息并将它们存储在以唯一偏移量为键的磁盘上。代理可以根据请求将来自主题、分区和偏移量的唯一消息响应给消费者
每当我们想到 Kafka Broker 时,它并不是一个单独的单元,而是一组使用 ZooKeeper 共享信息的服务器。 Kafka Brokers 不在一台机器上,而是能够分布在分布式集群环境中。部署在由 Zookeeper 协调的 Cluster 上的这组 broker 可以可视化为 Kafka Cluster。 Brokers 是 Kafka Cluster 的核心,也是它与消费者、生产者、confluent 连接器等外部词的连接器。
Kafka 主题由分布在 Broker 上的多个分区组成。一个分区可以被视为领导者,其他分区将成为追随者,并在其他代理中使用 ISR 复制消息。
您可以使用重新分配分区工具来分配领导者分区,您可以参考下面的链接了解更多详细信息
https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools
【讨论】:
kafka 主题在多个代理之间复制,以便多个消费者可以并行接收数据,或者在一个代理出现故障的情况下,可以从具有相同主题分区的其他代理检索数据。
【讨论】: