предупреждение в журнале брокера о смешивании типов смещения коммитов - PullRequest
0 голосов
/ 29 января 2019

У нас были процессоры, которые передают смещение через производителя для достижения точной однократной доставки.

Недавно я заметил, что все смещения являются четными числами (0,2,4,6,8) и что мы имеемследующее предупреждение в журнале брокера.

[2019-01-24 03:06:24,473] WARN [GroupMetadataManager brokerId=0] group: xxxx-group with leader: 1e9856a9-bce1-4a28-9774-0117382a9751-4d9411d1-36fb-4332-af9b-beb65aedfed1 has received offset commits from consumers as well as transactional producers. Mixing both types of offset commits will generally result in surprises and should be avoided. (kafka.coordinator.group.GroupMetadataManager)

Что-то не так с тем, как мы реализуем ровно один раз?это действительно приведет к неожиданностям?

1 Ответ

0 голосов
/ 29 января 2019

Я предполагаю, что вы совершаете транзакцию для каждой отдельной записи.

При фиксации (или прерывании) в раздел записывается контрольный пакет , который принимает смещение.Эта контрольная запись невидима для клиентов, но используется брокерами для разграничения транзакций и определения их окончательного состояния.

В основном ваши записи принимают четные смещения, и для каждой есть контрольный пакет фиксации, который принимает следующее смещение.

Теперь по поводу предупреждения в журналах:

Вы получите это, если есть транзакционный производитель и потребитель, оба фиксирующие смещения для одной и той же группы.Вы должны убедиться, что только транзакционный производитель фиксирует смещения, чтобы они были частью ваших транзакций, а записи обрабатывались один раз.

...