Станиславcard.quotedo‘tgan oy
В подразделе 2.5.5 я описал использование пула потоков и подписку нескольких потребителей (из одной группы) на одни и те же топики. Хотя Kafka и выравнивает нагрузку по топикам/секциям между всеми потребителями, назначение топиков и секций носит недетерминистский характер: нельзя предугадать, какие пары топиков/секций получит каждый из потребителей.

В классе KafkaConsumer имеются методы, с помощью которых можно подписаться на конкретные топик и секцию:

TopicPartition fooTopicPartition_0 = new TopicPartition("foo", 0);

TopicPartition barTopicPartition_0 = new TopicPartition("bar", 0);

consumer.assign(Arrays.asList(fooTopicPartition_0, barTopicPartition_0));

У назначения топиков/секций вручную есть свои недостатки:

• в случае отказа одной из машин не произойдет автоматического переназначения секций топиков, даже для потребителей с одним идентификатором группы. Для изменения назначений понадобится выполнить еще один вызов метода consumer.assign;

• для фиксации используется группа, указанная в настройках потребителя, но, поскольку все потребители будут функционировать сами по себе, имеет смысл задать для каждого из них свой уникальный идентификатор группы.
  • Fikr bildirish uchun kirish yoki roʻyxatdan oʻtish