Как заставить Алпакка-кафку читать циклический перебор из тематических разделов? - PullRequest
0 голосов
/ 14 октября 2019

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

Есть какие-нибудь идеи о том, как я могу настроить потребителя вместо циклического перебора на потребление разделов? Спасибо!

1 Ответ

0 голосов
/ 14 октября 2019

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

  1. Создание нескольких экземпляров для одного и того же потребителя. Он будет работать как группа потребителей, и все экземпляры будут распределять нагрузку на разделы параллельно. Например, если у вас 4 раздела и вы используете 2 экземпляра, это означает, что в идеальном случае 1 экземпляр будет использовать 2 раздела. Теперь, если вы увеличите экземпляр до 4, то в этом случае каждый экземпляр в идеальном случае будет использовать 1 раздел. В этом случае перебалансировка разделов будет управляться управлением групп потребителей.

  2. Вы также можете назначить список разделов для потребителя, используя ниже API

public void assign (разделы java.util.Collection)

Это будет вручную назначать список разделов потребителю, поэтому потребитель будет использовать только назначенный раздел. Это не будет использовать потребительский баланс.

...