1

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

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

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

bookkeeper-ensemble和 和有什么不一样bookkeeper-write-quorum

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

4

1 回答 1

6

bookkeeper-ack-quorom 是否意味着对客户端的 ack 延迟到此数量的 bookie 将条目写入磁盘?

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

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

Ensemble 是用于账本的 bookie 的数量。大多数情况下,这被配置为等于写入仲裁。

设置ensemble > write-quorum将启用“在单个主题中跨多个 bookie 的条目条带化。

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

  • 每条消息都写成 2 个副本,我们等待 2 个 ack
  • 消息在 5 个 bookie 中以循环方式进行条带化
  • 每个 bookie 将拥有消息的子集 2/5
  • 每个 bookie 的写入/读取流量很小

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

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

正确的。尽管ensemble也代表了为了接受写入而需要可用的最小 bookies 集。

如果您有 3 个 bookie 和 set ensemble=3,您将无法容忍节点故障。

于 2019-03-13T22:49:42.037 回答