我有Kafka集群有3经纪人和一对夫妇的主题,每个有5分区。现在我想为分区设置复制因子。
我可以为kafka主题的分区设置的最大复制因子是什么?
代理只能托管分区的单个副本。
因此,如果您的集群有3个代理,那么您可以拥有的最大复制因子是3。
虽然在理论上可以设置一个具有非常大复制因子的主题,但在实践中,将其设置为4以上几乎没有任何好处。副本用于实现高可用性和耐用性,基本上决定了在丢失任何数据之前可以脱机的代理数量。如果您有3个复制副本,则不太可能所有3个代理同时崩溃/失败。
复制因子决定每个分区的复制次数,这允许Kafka在群集中的服务器出现故障时自动故障切换到这些复制副本,以便在出现故障时消息仍然可用
分区副本分布在代理之间,一个代理应该保留一个副本,这意味着我们不能拥有超过代理数量的副本
最大复制因子
这也意味着要确定min.insync。复制副本,这意味着它将始终小于或等于复制因子
min.insync。复制品意味着
min.insync.replicas是您愿意随时在线以继续运行和接受新传入消息的数据的最小副本数。
理想情况下,复制因子3是良好的,如上所述,但是,根据用例,您可以将复制因子调整为小于2(意味着高风险),同时大于3可以提供更好的可用性,但需要更多的开销和更多的大小。
在决定复制因子的同时,也要考虑以下几点:
A) :代理大小复制因子直接影响整个代理磁盘大小
因此,高复制系数需要更大的磁盘大小
b)大量分区复制:在大量分区复制的情况下,会增加额外的延迟。
我正在学习Kafka,并试图为我最近的搜索应用程序创建一个主题。被推送到Kafka主题的数据被认为是一个很高的数字。 我的kafka集群有3个代理,并且已经为其他要求创建了主题。 现在,我应该为最近的搜索主题选择多少个分区?如果我没有明确提供分区号呢?选择分区号时需要考虑哪些事项?
Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。
通过Kafka文档和各种其他资源,我了解到Kafka中的消息被组织成主题。此外,主题可以分解为多个分区,每个分区可以托管在不同的服务器上。这提供了冗余和可伸缩性。 我不确定这里的“破碎”这个词是什么意思。这是否意味着,如果添加到主题的消息是,例如“1 2 3 4 5 6 7”,那么在将其分解为分区后,我们将有一个分区仅包含整个主题的子部分。就像一个分区有“1 2 3”,而另一个分区有“4 5 6”
简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所
问题内容: 如何从代码中获取任何kafka主题的分区数。我研究了许多链接,但似乎没有一个起作用。 提及一些: http://grokbase.com/t/kafka/users/148132gdzk/find-topic-partition-count- through-simpleclient-api http://grokbase.com/t/kafka/users/151cv3htga/ge
我正在用单个主题和多个分区实现kafka producer。我通过消息中的一个特定值(消息json中的feedName属性值)选择消息到哪个分区。我正在为feedName-partitionId映射维护一个SQL表。我的问题是,leader和副本的分区Id是否相同?如果不同,如何在所有代理中唯一地标识分区?