今天了解 kafka副本存放机制时去网上搜了一下,发现有两个版本的答案 :
第一个版本是: 随机存储在集群上(类似于hdfs存储机制)。
第二个版本是: 第一个分区(编号为0)的第一个副本放置位置是随机从 brokerList 选择的,其他分区的第一个副本放置位置相对于第0个分区依次往后移。
例如:有5个 Broker,5个分区,假设第一个分区放在第四个 Broker 上,那么第二个分区将会放在第五个 Broker 上;第三个分区将会放在第一个 Broker 上;第四个分区将会放在第二个 Broker 上,第五个分区将会放在第三个 Broker 上。
自己想了一下,感觉kafka的副本存放机制应该不会这么严格,因为如果按照第二个版本来说的话假如我有3个副本,第一个副本存储在第1台服务器,那么第2个副本和第3个副本依次存储在 第2台服务器和第3台服务器,那么就存在一个问题,如果第2台服务器没有存储空间了咋办?求解!