我们是否应该关注Pulsar主题中的捆绑包过多?

时间:2019-07-31 18:42:53

标签: apache-pulsar pulsar

我们在脉冲星群中观察到以下警告。我们应该担心吗?

     18:37:37.165 [pulsar-modular-load-manager-29-1] 
       WARN  org.apache.pulsar.brok er.loadbalance.BundleSplitStrategy - 
       Could not split namespace bundle pulsareval/0x56000000_0x56800000
       because namespace pulsareval has too many bundles: 512

1 个答案:

答案 0 :(得分:1)

首先是关于实际捆绑包的背景... 来自https://pulsar.apache.org/docs/en/administration-load-balance/#creating-namespaces-and-bundles

每个Pulsar代理都没有分配给单个主题,而是拥有名称空间的主题子集的所有权。该子集称为“捆绑”,实际上是一种分片机制。

通过获取主题名称的哈希并查看哈希属于哪个捆绑,将主题分配给特定捆绑。每个捆绑包都彼此独立,因此独立分配给不同的经纪人。

通常,如果预先知道预期的访问量和主题数,则最好从合理数量的分发包开始,而不要等待系统自动更正分发。

命名空间包拆分

由于捆绑包中主题的负载可能会随时间变化,或者可能很难预先预测,因此经纪人可以将捆绑包分成2个。然后可以将新的较小的捆绑包重新分配给不同的经纪人。

您的错误消息表明主题数量增长到足以触发捆绑包的自动拆分的程度,但是这样做失败了,导致命名空间中允许的最大捆绑包数量。虽然这是非致命的情况,但会影响性能。

因此,您可能希望增加broker.conf文件中loadBalancerNamespaceMaximumBundles属性的值,该属性限制了名称空间中可以包含的最大捆绑数量。根据错误消息,似乎正在发生。