Essa é uma iniciativa que não vou conseguir fazer todo dia, mas será o desafio que coloco para quem quiser. Vou preparar um roteiro e quem for seguindo pode me marcar e marcar @dev_roadmap para acompanhar o progresso.
- Escrever código ao menos por 1 hora nos próximos 100 dias
- Tweetar seu progresso usando as tags #100DaysOfCode, #ApachaKafka ou #100DaysOfKafka
A primeira regra eu vou suavizar porque eu mesmo não consigo (quem tem filhos entende) reservar 1h por dia todo dia.
Ao aceitar o desafio, compartilha no Twitter.
- Tente usar Java, apesar de Kafka ter APIs em outras linguagens, a API Java é a mais rica!
- Se for usar Java, use Maven
- Se usa Windows, recomendo usar Git Bash, vai te possibilitar usar o Bash ao invés do CMD do Windows.
- Se o SDKMan, vai te possibilitar instalar o Maven e qualquer versão de Java que você quiser.
- Dia 001 - Instale o Apache Kafka (escreva um Dockerfile, ou instale ele localmente) [1]
- Dia 002 - Crie um produtor simples que envia um arquivo texto para um tópico, cada linha deve ser uma mensagem [2]
- Dia 003 - Crie um consumidor simples que lê as mensagens de um tópico [3]
- Dia 004 - Altere o seu produtor para enviar um POJO usando um serializador JSON que você mesmo escreveu. Use Jackson
- Dia 005 - Altere seu consumidor para receber um POJO usando um desserializador JSON que você mesmo escreveu. Use Jackson
- Dia 006 - Crie um nome consumidor com um novo group.id e veja como os dois consumidores funcionam em paralelo.
- Dia 007 - Adicione ao menos mais uma instância do Kafka e tente conectar no cluster, não somente em um broker.
- Dia 008 - Explore os scripts
kafka-topics
ekafka-consumer-groups
. Se você usa docker eles estão dentro do seu container, se usa local estão na pastabin
do Kafka. - Dia 009 - Altere as configurações do seu tópico, adicione mais partições e mude o fator de replicação. Verifique as possiblidades. [4]
- Dia 010 - Rode mais de uma instância do mesmo consumidor para um tópico com mais de uma partição e veja como funciona.
- (...)