Apache Pulsar主题复制,集群大小增加

问题描述 投票:0回答:1

我想了解名称空间/主题复制在Apache Pulsar中如何工作,集群大小的变化对现有和新名称空间/主题的复制因子有什么影响。

请考虑以下情形:

我将从具有以下代理配置的单个节点开始:

# Number of bookies to use when creating a ledger
managedLedgerDefaultEnsembleSize=1

# Number of copies to store for each message
managedLedgerDefaultWriteQuorum=1

# Number of guaranteed copies (acks to wait before write is complete)
managedLedgerDefaultAckQuorum=1

几个月后,我决定使用新代理的以下配置将集群大小增加到两个:

# Number of bookies to use when creating a ledger
managedLedgerDefaultEnsembleSize=2

# Number of copies to store for each message
managedLedgerDefaultWriteQuorum=2

# Number of guaranteed copies (acks to wait before write is complete)
managedLedgerDefaultAckQuorum=2

在上述情况下,群集的行为是什么:

  1. 这是否会更改现有主题的复制因子(RF)?
  2. 新创建的主题具有旧的RF还是新的指定RF?
  3. 名称空间/主题(托管分类帐)->经纪人所有权如何工作?

请注意,这两个代理节点此时具有不同的配置。

TIA

replication apache-pulsar
1个回答
0
投票

您要更改的是默认复制设置(集成,写入,确认)。您不应该在不同的代理上使用不同的默认值,因为这将导致不一致的行为,具体取决于客户端连接到哪个代理。

复制设置在名称空间级别进行控制。如果未显式设置它们,则将获得默认设置。但是,您可以使用CLI或REST接口更改各个名称空间上的设置。如果从命名空间上的设置(1个合奏,1个写入,1个确认)开始,然后更改为(2个合奏,2个写入,2个确认),则会发生以下情况:

  • 名称空间中的所有新主题均使用新设置,每条消息存储2个副本
  • 发布到名称空间中现有主题的所有新消息均使用新设置,存储2个副本。已经存储在现有主题中的消息不会更改。他们仍然只有1份。

要注意的重要一点是,代理的数量不会影响消息复制。在Pulsar中,代理程序只处理消息的提供(生成/使用)。经纪人是无国籍的,可以水平扩展。消息存储在Bookkeeper节点(bookies)上。复制设置(集成,写,确认)是指Bookkeeper节点,而不是代理。这是来自Pulsar网站的图表,说明了这一点:

Pulsar Architecture

因此,要从(1个合奏,1个写入,1个确认)设置更改为(2个合奏,2个写入,2个确认)设置,您需要向群集中添加一个Bookkeeper节点(假设您仅以1开始) ,而不是其他经纪人。

© www.soinside.com 2019 - 2024. All rights reserved.