Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema no curso de kafka para acessar um docker kafka

Pessoal fiz os dois primeiros dois módulos do curso de kafka, utilizando um docker kafka, quando chegou no momento de criar várias brokers, consegui com o docker-compose abaixo, o problema que o java não consigo mais rodar alguém pode me dar uma ajuda?

version: "3" services: zookeeper: image: 'bitnami/zookeeper:latest' container_name: zookeeper ports:

  - '2181:2181'
environment:
  - ALLOW_ANONYMOUS_LOGIN=yes

kafka1: image: 'bitnami/kafka:latest' hostname: kafka1 container_name: 'kafka1' ports:

  - '9091:9091'
environment:
  - KAFKA_BROKER_ID=1
  - KAFKA_DEFAULT_REPLICATION_FACTOR=5
  - KAFKA_LISTENERS=PLAINTEXT://:9091
  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:29092,PLAINTEXT_HOST://localhost:9092
  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
  - KAFKA_NUM_PARTITIONS=5
  - KAFKA_REPLICATION_FACTOR=5
  - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=5
  - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=5
  - KAFKA_TRANSACTION_STATE_LOG_NUM_PARTITIONS=5
  - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=5
  - BOOTSTRAP_SERVERS=kafka1:9091,kafka2:9092,kafka3:9093,kafka4:9094,kafka5:9095
  - ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
  - zookeeper

kafka2: image: 'bitnami/kafka:latest' hostname: kafka2 container_name: 'kafka2' ports:

  - '9092:9092'
environment:
  - KAFKA_BROKER_ID=2
  - KAFKA_DEFAULT_REPLICATION_FACTOR=5
  - KAFKA_LISTENERS=PLAINTEXT://:9092
  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9092
  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
  - KAFKA_NUM_PARTITIONS=5
  - KAFKA_REPLICATION_FACTOR=5
  - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=5
  - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=5
  - KAFKA_TRANSACTION_STATE_LOG_NUM_PARTITIONS=5
  - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=5
  - BOOTSTRAP_SERVERS=kafka1:9091,kafka2:9092,kafka3:9093,kafka4:9094,kafka5:9095
  - ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
  - zookeeper

kafka3: image: 'bitnami/kafka:latest' hostname: kafka3 container_name: 'kafka3' ports:

  - '9093:9093'
environment:
  - KAFKA_BROKER_ID=3
  - KAFKA_DEFAULT_REPLICATION_FACTOR=5
  - KAFKA_LISTENERS=PLAINTEXT://:9093
  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9093
  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
  - KAFKA_NUM_PARTITIONS=5
  - KAFKA_REPLICATION_FACTOR=5
  - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=5
  - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=5
  - KAFKA_TRANSACTION_STATE_LOG_NUM_PARTITIONS=5
  - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=5
  - BOOTSTRAP_SERVERS=kafka1:9091,kafka2:9092,kafka3:9093,kafka4:9094,kafka5:9095
  - ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
  - zookeeper

kafka4: image: 'bitnami/kafka:latest' hostname: kafka4 container_name: 'kafka4' ports:

  - '9094:9094'
environment:
  - KAFKA_BROKER_ID=4
  - KAFKA_DEFAULT_REPLICATION_FACTOR=5
  - KAFKA_LISTENERS=PLAINTEXT://:9094
  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka4:9094
  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
  - KAFKA_NUM_PARTITIONS=5
  - KAFKA_REPLICATION_FACTOR=5
  - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=5
  - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=5
  - KAFKA_TRANSACTION_STATE_LOG_NUM_PARTITIONS=5
  - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=5
  - BOOTSTRAP_SERVERS=kafka1:9091,kafka2:9092,kafka3:9093,kafka4:9094,kafka5:9095
  - ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
  - zookeeper

kafka5: image: 'bitnami/kafka:latest' hostname: kafka5 container_name: 'kafka5' ports:

  - '9095:9095'
environment:
  - KAFKA_BROKER_ID=5
  - KAFKA_DEFAULT_REPLICATION_FACTOR=5
  - KAFKA_LISTENERS=PLAINTEXT://:9095
  - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka5:9095
  - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
  - KAFKA_NUM_PARTITIONS=5
  - KAFKA_REPLICATION_FACTOR=5
  - KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS=5
  - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=5
  - KAFKA_TRANSACTION_STATE_LOG_NUM_PARTITIONS=5
  - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=5
  - BOOTSTRAP_SERVERS=kafka1:9091,kafka2:9092,kafka3:9093,kafka4:9094,kafka5:9095
  - ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
  - zookeeper
2 respostas

Fala Fernando, beleza? Uma dúvida que tive durante o curso foi essa e fiz algo semelhante a você no compose, mas se você prestar atenção ele não cria três brokers, ele cria grupos nesse broker depois pega esses grupos e particionar em 2 ou mais. Então é 1 broker, 3 grupos (email, fraude e neworder) e cada grupo com 2 partições ou mais... Abraços e bons estudos! ps: pra fazerbrokers com o Docker puro você precisaria fazer o run ou exec de cada um em uma porta apontando pro zookeeper, mas teria que ter uma containerName diferente pra cada um... mais fácil fazer isso usando o compose mesmo kkk

solução!

Não sei se entendi direito mas acabei instalando o kafka mesmo para terminar o curso. Depois vou dar uma olhada nisto para fazer funcionar, vlw obrigado. Qualquer coisa comento aqui no fórum.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software