【问题标题】:How to change the number of brokers for a topic in a kafka cluster?如何更改 kafka 集群中某个主题的代理数量?
【发布时间】:2019-01-09 22:08:06
【问题描述】:

我对一些 Kafka 主题有疑问,但还没有找到答案。

虽然向 __confluent.support.metrics 添加更多分区应该不是问题(我知道该怎么做),但我想知道是否可以告诉它使用显然无法被本主题看到的代理?

我也很想了解为什么这些主题只继承了一些代理,而不是其集群中所有可用的 5 个代理。

我很想解决这些问题。但我担心如果我告诉它在 broker 上添加(或使用)分区,主题无法“看到”,它可能无法工作甚至破坏主题,这将是相当糟糕的。

我如何指示这些主题,有 5 个可用的经纪人?我可以使用其中一种 Kafka 工具吗?

一开始怎么会这样?

为什么 __consumer_offsets 主题只“看到” 4 个代理,而不是像这个集群中的所有其他主题那样看到 5 个?

仅供参考:我没有设置任何这些,但我必须清理/改造正在运行的集群并且现在卡住了,我以前从未遇到过此类问题

【问题讨论】:

  • 为什么要修改 Confluent 支持主题?如果您正在积极使用 Confluent 支持,它可能会破坏事情。如果有的话,你应该增加复制因子

标签: apache-kafka


【解决方案1】:

消费者偏移量和 Confluent 指标主题在服务器属性文件中都有行项目,用于确定将使用哪些配置创建这些主题。

要改善这些主题的健康状况,您可以尝试increase the replication factor,这会将您的主题传播到更多经纪人并提供容错能力。另见Kafka Tools Wiki

【讨论】:

  • 谢谢,我要试试。在更改它们之前,我只是想对此有一些反馈。我有点困惑。正如我所说,我以前从未遇到过这种奇怪的行为。我的下一步是使用 50 个分区将其重新复制到 5 倍。我想这就是我现在要做的,从我的测试集群开始。如果这工作得很好,我会去生产的。再次感谢您的反馈。
【解决方案2】:

发生这种情况的原因是您只有一个分区和一个副本用于 __confluent.support.metrics 主题。在 5 节点集群中,这意味着您将只使用集群中 20% 的可用代理,这与您发布的图像相对应。具有复制因子 1 和 1 分区的主题只能在一个代理上保存数据。

另一方面,您的 __consumer_offsets 主题仅使用 5 个代理中的 4 个是不寻常的。我的猜测是您的第 5 个代理在创建 __consumer_offsets 时不在线(这是在您第一次从任何主题消费时创建的),因此在此代理上没有创建任何分区。

但是,这可能没什么好担心的,因为分区在集群中的分布通常由 Kafka 自己处理,而不是用户问题。没有主题“看到”经纪人本身的概念;相反,代理持有主题的数据,主题将知道它们驻留在哪些代理上。主题通常不需要与其他代理相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2021-12-04
    • 1970-01-01
    • 2022-12-19
    • 2020-12-09
    相关资源
    最近更新 更多