Apache Pulsar 中的主题复制

kla*_*a-l 1 apache-pulsar

有关 Pulsar 中复制的文档描述性并不强。我想知道复制的详细工作原理以及命名空间的持久性策略如何发挥作用。文档讨论了这些参数

  • bookkeeper-ack-quorom:等待每个条目的ack(保证副本)数量
  • bookkeeper-ensemble:用于某个主题的 bookie 数量
  • bookkeeper-write-quorum:每个条目要写入多少次

是否bookkeeper-ack-quorom意味着对客户端的确认会延迟,直到一定数量的博彩公司将条目写入磁盘?

bookkeeper-ensemble和 和有什么区别bookkeeper-write-quorum

假设我有 3 个 bookie,并且我希望命名空间中的主题驻留在每个 bookie 上,然后我将这两个值都设置为3?

Mat*_*rli 8

bookkeeper-ack-quorom 是否意味着对客户端的确认会延迟,直到一定数量的 bookie 将条目写入磁盘?

这是正确的。如果您的 ack-quorum 为 2,则意味着发布成功后您将拥有 2 个保证的消息副本。在默认配置中,这意味着消息将写入磁盘并刷新(fsynced)到两台计算机上的磁盘。

bookkeeper-ensemble 和 bookkeeper-write-quorum 有什么区别?

Ensemble 是用于分类账的博彩公司的数量。大多数时候,它被配置为等于写入仲裁。

设置ensemble > write-quorum将启用“在单个主题内跨多个博彩公司的条目条带化”。

例如,设置e=5 w=2 a=2将使:

  • 每条消息都写入 2 个副本,我们等待 2 个确认
  • 消息以循环方式分布在 5 个博彩公司之间
  • 每个博彩玩家都会有一个消息子集 2/5
  • 每个 bookie 都会有少量的写入/读取流量

基本上,它允许在不放松排序的情况下扩展单个分类帐的 IO。

假设我有 3 个 bookie,并且我希望命名空间中的主题驻留在每个 bookie 上,那么我将这两个值都设置为 3?

正确的。虽然ensemble也代表了为了接受写入而需要可用的最小博彩公司集。

如果你有 3 个 bookie 并设置了ensemble=3,你将无法容忍节点故障。