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