## Etapa 1:Pré-requisitos
Antes de instalar o Apache Kafka, certifique-se de ter os seguintes pré-requisitos:
- Servidor Ubuntu 18.04 com usuário não root com privilégios `sudo`.
- Java Development Kit (JDK) 8 ou posterior instalado.
- Zookeeper instalado e funcionando. [Aqui](/blog/how-to-install-zookeeper-on-ubuntu-1804) está como instalar o ZooKeeper no Ubuntu 18.04.
Etapa 2:Baixe o Apache Kafka
1. Visite a página oficial de [download do Apache Kafka](https://kafka.apache.org/download).
2. Na seção "Versões", clique na versão estável mais recente (por exemplo, `2.8.0`).
3. Na página de lançamento, clique no link para baixar o arquivo tarball (por exemplo, `kafka_2.12-2.8.0.tgz`).
4. Use `wget` para baixar o arquivo tarball:
```
wget https://www-us.apache.org/dist/kafka/2.8.0/kafka_2.12-2.8.0.tgz
```
Etapa 3:Extraia o Tarball
Assim que o download for concluído, extraia o arquivo tarball para um diretório de sua escolha. Neste exemplo, iremos extraí-lo para `/opt`:
```
sudo tar -xzvf kafka_2.12-2.8.0.tgz -C /opt
```
Isso criará um diretório chamado `/opt/kafka_2.12-2.8.0`.
Etapa 4:Definir variáveis de ambiente
Para facilitar o trabalho com o Kafka, você pode definir algumas variáveis de ambiente. Adicione as seguintes linhas ao seu arquivo `/etc/profile`:
```
exportar KAFKA_HOME=/opt/kafka_2.12-2.8.0
exportar PATH=$KAFKA_HOME/bin:$PATH
```
Salve o arquivo e feche-o. Em seguida, execute o seguinte comando para atualizar as variáveis de ambiente:
```
fonte /etc/perfil
```
Etapa 5:Criar usuário Kafka
Para executar o Kafka, é recomendado criar um usuário dedicado. Isso ajuda a isolar os processos Kafka de outros processos do sistema e aumenta a segurança.
```
sudo adduser --system --group kafka
```
Etapa 6:configurar o Zookeeper
Kafka conta com o Zookeeper para coordenação. Edite o arquivo `config/zookeeper.properties` no diretório de instalação do Kafka:
```
sudo vi /opt/kafka_2.12-2.8.0/config/zookeeper.properties
```
Certifique-se de que o parâmetro `connect` aponte para o conjunto Zookeeper:
```
conectar=localhost:2181
```
Salve o arquivo e feche-o.
Etapa 7:configurar o Kafka
A seguir, vamos configurar o Kafka editando o arquivo `config/server.properties`:
```
sudo vi /opt/kafka_2.12-2.8.0/config/server.properties
```
Aqui estão as principais configurações a serem modificadas:
- Substitua `broker.id` por um ID exclusivo para este corretor (por exemplo, `0` se for o primeiro corretor em seu cluster).
- Defina `zookeeper.connect` para apontar para o conjunto Zookeeper (por exemplo, `localhost:2181`).
- Considere ajustar o parâmetro `log.dirs` para especificar o diretório onde o Kafka armazenará seus logs.
- Revise outros parâmetros como `num.partitions` e `default.replication.factor` com base em seus requisitos.
Salve o arquivo e feche-o.
Etapa 8:Crie tópicos
Os tópicos são as unidades fundamentais de armazenamento de dados no Kafka. Para criar um tópico, execute o seguinte comando, substituindo `my-topic` pelo nome do tópico desejado:
```
/opt/kafka_2.12-2.8.0/bin/kafka-topics.sh --create --topic meu-tópico --partitions 1 --fator de replicação 1 --zookeeper localhost:2181
```
Etapa 9:iniciar o Kafka
Para iniciar o agente Kafka, execute o seguinte comando:
```
/opt/kafka_2.12-2.8.0/bin/kafka-server-start.sh /opt/kafka_2.12-2.8.0/config/server.properties
```
Etapa 10:teste Kafka
Para testar se o Kafka está funcionando corretamente, você pode usar as ferramentas `kafka-console-producer` e `kafka-console-consumer`.
Produza uma mensagem
Para produzir uma mensagem, execute o seguinte comando, substituindo `my-topic` pelo nome do seu tópico:
```
/opt/kafka_2.12-2.8.0/bin/kafka-console-producer.sh --topic meu-tópico --broker-list localhost:9092
```
No console, digite uma mensagem e pressione `Enter`.
Consumir uma mensagem
Para consumir a mensagem, execute o seguinte comando, substituindo `my-topic` pelo nome do seu tópico:
```
/opt/kafka_2.12-2.8.0/bin/kafka-console-consumer.sh --topic meu-tópico --bootstrap-server localhost:9092 --from-beginning
```
No console, você deverá ver a mensagem produzida anteriormente.
Etapa 11:configurar o firewall (opcional)
Se o seu servidor Kafka não estiver acessível externamente, pode ser necessário configurar seu firewall para permitir conexões de entrada na porta 9092 (ou em qualquer porta personalizada especificada durante a configuração).
Conclusão
Você instalou e configurou com sucesso o Apache Kafka em seu servidor Ubuntu 18.04. Agora você pode explorar seus recursos e começar a criar aplicativos em tempo real.