Как запустить два экземпляра Кафки отдыха

Я пытаюсь запустить второй экземпляр для Kafka Rest. Вот файл свойств для первого:

id=kafka-rest-test-server-1
schema.registry.url=http://localhost:8081,http://localhost:9081
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
bootstrap.servers=PLAINTEXT://localhost:9092,PLAINTEXT://localhost:9093,PLAINTEXT://localhost:9094

Согласно документам Confluent:

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

Тем не менее, когда я запускаю второй экземпляр с другими idвозникает исключение, указывающее, что адрес уже используется:

WARN FAILED io.confluent.rest.Application$1@41294f8: java.net.BindException: Address already in use (org.eclipse.jetty.util.component.AbstractLifeCycle:212)
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)

...

1 ответ

Решение

Идентификатор не контролирует порт. "Несколько экземпляров" в документации означает независимые машины

Как и в реестре схем, настройте listeners

listeners
Разделенный запятыми список слушателей, которые прослушивают запросы API через HTTP или HTTPS

По умолчанию: " http://0.0.0.0:8082/"

https://docs.confluent.io/current/kafka-rest/docs/config.html

port свойство устарело, но если вы используете старую версию, не мешало бы установить и ее

Например, сначала оставьте значения по умолчанию

Во-вторых, используйте любой доступный порт

listeners=http://0.0.0.0:18082

Обычно рекомендуется использовать более одной машины для обеспечения высокой доступности и распределенной обработки. Запустив 3 Zookeepers, 3 Brokers, 2 Registries и 2 Proxies, вы в основном умоляете исчерпать RAM

Другие вопросы по тегам