Как запустить два экземпляра отдыха Кафки - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь запустить второй экземпляр для 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

Согласно Документам Конфлуента :

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

Однако, когда я запускаю второй экземпляр с другим 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 Ответ

0 голосов
/ 28 июня 2018

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

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

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

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

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

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

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

Второй экземпляр, используйте любой доступный порт

listeners=http://0.0.0.0:18082

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

...