Почему мой кластер Kafka Connect имеет только один рабочий, обрабатывающий сообщения? - PullRequest
0 голосов
/ 08 апреля 2020

Я недавно настроил локальную Kafka на своем компьютере для тестирования и разработки:

  • 3 брокера
  • Один ввод topi c
  • Kafka подключить приемник между topi c и elasti c search

Мне удалось настроить его в автономном режиме, поэтому все является локальным, и подключение Kafka было запущено с использованием сценария ./connect-standalone.sh.

Сейчас я пытаюсь запустить мои соединители в распределенном режиме, чтобы сообщения Kafka можно было разделить на обоих рабочих. Я запустил двух рабочих (все еще на одной машине), но когда я отправляю сообщение на мой Kafka topi c, только один рабочий (последний запущенный) обрабатывает сообщения.

Так что мой вопрос is: Почему только один работник обрабатывает сообщения Kafka вместо обоих ?

Когда я убиваю одного из работников, другой забирает поток сообщений обратно, поэтому я думаю, что кластер исправен setup.

Что я думаю:

  • Я не помещаю ключи в мои сообщения Kafka, это может быть связано с этим?

  • Я запускаю все в localhost, может ли распределенный режим работать таким образом? (Я правильно настроил специфику c уникальное поле, например ret.port)

1 Ответ

0 голосов
/ 08 апреля 2020

Разрешено:

Из документации Kafka:

Разделение работы между задачами показано разделами, которым каждая задача назначена

Если вы не используете раздел (pu sh все сообщения в одном разделе), рабочие не смогут делить сообщения. Вам не нужно использовать ключи сообщений, вы можете просто отправить sh свои сообщения в другой раздел циклическим c способом.

См .: https://docs.confluent.io/current/connect/concepts.html#distributed -работники

...