Репликация темы в Apache Pulsar
Документация по тиражированию в Pulsar не очень наглядна. Мне интересно, как репликация работает подробно и как политики постоянства для пространства имен играют в этом. В документации говорится об этих параметрах
bookkeeper-ack-quorom
: Количество подтверждений (гарантированных копий) для ожидания каждой записиbookkeeper-ensemble
: Количество букмекеров для использования в темеbookkeeper-write-quorum
: Сколько записей нужно сделать для каждой записи
Есть ли bookkeeper-ack-quorom
Значит, подтверждение клиента откладывается до тех пор, пока это количество букмекеров не записает запись на диск?
В чем разница между bookkeeper-ensemble
а также bookkeeper-write-quorum
?
Предположим, у меня есть 3 букмекера, и я хочу, чтобы темы в пространстве имен располагались на каждой из них, а затем я установил оба значения на 3
?
1 ответ
Означает ли bookkeeper-ack-quorom, что подтверждение клиента задерживается до тех пор, пока это число букмекеров не записает запись на диск?
Правильно. Если ваш ack-кворум равен 2, это означает, что у вас будет 2 гарантированные копии сообщения, когда публикация будет успешной. В конфигурации по умолчанию это будет означать, что сообщение записывается на диск и сбрасывается (fsynced) на диск на 2 компьютерах.
В чем разница между бухгалтерским ансамблем и бухгалтерским кворумом?
Ансамбль - это количество букмекеров, которые будут использоваться для главной книги. Большую часть времени это настроено так, что оно равно кворуму записи.
настройка ensemble > write-quorum
включит "чередование записей по нескольким букмекерам в рамках одной темы.
Например, настройка e=5
w=2
a=2
сделаю:
- Каждое сообщение написано в 2 экземплярах, и мы ждем 2 подтверждения
- Сообщения чередуются по 5 букмекерам
- Каждый букмекер будет иметь подмножество сообщений 2/5
- У каждого букмекера будет небольшой трафик записи / чтения
По сути, это позволяет увеличить IO для одной бухгалтерской книги, не упуская порядок.
Предположим, у меня есть 3 букмекера, и я хочу, чтобы темы в пространстве имен располагались на каждой из них, а затем я установил оба значения на 3?
Правильный. Хотя ensemble
также представляют минимальный набор букмекеров, которые должны быть доступны для того, чтобы записи были приняты.
Если у вас есть 3 букмекера и установлено ensemble=3
, вы не сможете терпеть сбой узла.