Я хочу иметь 3 реплики kafka на 3 разных машинах.
На первой машине я запускаю zookeeper со следующим файлом конфигурации:
dataDir=/root/kafka/zookeeper
clientPort=2181
clientPortAddress=172.16.1.1
maxClientCnxns=0
tickTime=2000
initLimit=10
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=172.16.1.2:2888:3888
server.3=172.16.1.3:2888:3888
, где dataDir
содержит myid
файл со значением 1.
На первом компьютере я также запускаю сервер kafka со следующим файлом конфигурации:
broker.id=1
port=9001
log.dirs=/root/logs/kafka-logs
zookeeper.connect=172.16.1.1:2181,172.16.1.2:2181,
172.16.1.3:2181
zookeeper.connection.timeout.ms=6000
advertised.host.name=172.16.1.1
На втором и третьем компьютере я запускаю zookeeper и kafkaсерверы с похожими конфигурационными файлами.
Затем на первой машине я запускаю продюсер, чтобы создать 1000000 сообщений.
Теперь я хочу использовать эти 1000000 сообщений у потребителя на каждой из 3 машин.
Проблема в следующем:
- Если я уничтожу сервер kafka на первом компьютере, ни один потребитель не будет использовать сообщения на втором или третьем компьютере.Другие реплики, похоже, не играют роли в репликации созданных сообщений.
Мой вопрос: как правильно настроить сервер kafka и 2 реплики на разных компьютерах, чтобы потребители могличитать сообщения от kafka, включая случаи сбоев сервера kafka ?