2016-06-22 2 views
1

Например, у меня есть только один брокер и одна тема под названием «Test-topic» с 3 разделами и 2 репликами. Когда производитель отправить 3 сообщения в теме,Как потребитель обеспечивает согласованность с производителем в Кафке?

  1. 1-е сообщение будет храниться в разделе 1
  2. 2-е сообщение будет сохранено в разделе 2
  3. 3-е сообщение будет сохранено в разделе 1

Когда потребитель читает данные из этой темы, как обеспечить, чтобы порядок сообщений все еще составлял 1 \ 2 \ 3 сообщения?

ответ

3

Единственная гарантия, предоставляемая kafka, заключается в том, что сообщения будут заказываться в разделе. См. Это link

Сообщения, отправленные производителем в отдельный раздел темы, будут добавляться в том порядке, в котором они были отправлены. То есть, если сообщение M1 отправляется тем же производителем, что и сообщение M2, а M1 отправляется первым, тогда M1 будет иметь меньшее смещение, чем M2, и появится раньше в журнале.
Пользовательский экземпляр видит сообщения в том порядке, в котором они хранятся в журнале.

В вашем случае, потребитель мог видеть сообщения, как 1 \ 2 \ 3 или 1 \ 3 \ 2 или 2 \ 1 \ 3

Смежные вопросы