o Olá pessoal tudo bem seja muito mas muito bem vindo a mais um vídeo aqui no canal meu nome é Wesley Willians e hoje a gente vai iniciar uma série mais do que especial e essa série vai ser sobre o famoso Apache Kafka então se você desenvolvedor e quem entender como funciona esse sistema Fantástico de mensageria e sistema de processamento de stream de dados e sistema que é extremamente poderoso de utilizado por empresas gigantes como Netflix Twitter LinkedIn diversos bancos Spotify Uber e tudo mais eu não tenho dúvidas que esse vídeo ele é perfeito para
você então o que você tem que se ligar é que nessa nossa série A minha ideia é a gente cobrir de uma forma geral aí o Apache Kafka desde alguns pontos teóricos até mesmo a gente colocar a mão no código há muita coisa acontecendo esse vídeo é um dos vídeos mais importantes de todos que a gente vai fazer nessa série porque esse vídeo ele tem a o objetivo de explicar de forma geral o que é dar o Apache Kafka e todo o seu ecossistema como funciona todas as regras deles de forma geral e o porquê
você deve utilizar esse camarada legal então vamos lá porque a gente tem bastante coisa para cobrir hoje bota bom pessoal e antes da gente ir direto ao nosso assunto eu gostaria muito de pedir para nesse momento você parar tudo eu espero para você dar um clique aí no nosso joinha tá E também se inscreva nesse canal e assim todas as vezes que a gente subir nova conteúdo você vai ser notificado e também obviamente se você quer ver os próximos vídeos aqui dessa nossa série do Apache Kafka se inscreve aí também porque eu não quero que
você perca nenhum deles Beleza então galera vamos lá vamos falar aqui sobre o nosso famoso a praticar somente para você entender o que eu fiz foi criar uma espécie de um infográfico gigante tá Inclusive eu vou deixar o link na descrição para você poder fazer o download e nesse infográfico tem um resumo gigante tá de como que o cara fica funciona da onde que eu peguei essas informações tá só para você saber eu fazer uma um Slender aqui para você tá eu peguei esse de informações tá principalmente através do site oficial do Apache Kafka tá
eu também peguei informação de um é fornecido que ela com frente que a empresa principal que faz o Apache Kafka onde eles dão uma geralzona eu também vou deixar os links aí principais e tudo que eu for colocando de link de referência eu deixo aqui na descrição pra te ajudar também a olhar essas Fontes que fez com que eu gerasse esse resumo tá somente para você saber porque eu fiz esse resumo de forma geral inteiro em inglês porque o Kafka ele utiliza muitos desses termos em inglês então às vezes quando a gente traduz não fica
muito legal mas de qualquer forma eu vou cobrir passo a passo aqui com você E daí eu vou te explicando certinho esses termos caso ainda você esteja aí é evoluindo aí no seu inglês Beleza então vamos lá vamos agora aí para tela do meu computador porque eu quero que você veja esse infográfico que eu acabei de gerar sobre o apática Então vamos lá Olá pessoal seguinte Apache Kafka tá o Apache Kafka ele é um sistema open source tá ele trabalha de forma distribuída que ele serve também para fazer o seguinte tá trabalhar com stream de
dados ou seja eu tenho dado eu tenho uma informação e eu quero passar essa informação de um sistema para o outro eu quero armazenar sua informação para poder consultar depois eu quero pegar essa informação transformar esses dados para jogar em outro sistema eu posso utilizar o Apache Kafka tá o a parte de casca ele é um sistema extremamente poderoso você consegue trabalhar com ele no formato de filas como a gente tá muito acostumado a falar né a gente tem uma outra soluções aí como have time que o stvm que o a versão sgs tudo mais
mas o a parte de cá fica ele é muito mais do que simplesmente um sistema de filas um sistema de mensageria que seja uma mensagem de lá para cá esse camarada o a prática O que é muito Poderoso Ele É muito robusto e ele principalmente Ele trabalha com o esquema muito bacana de escalar habilidade tá então você vai ver o porquê E como que ele trabalha de forma distribuída para que você possa escalar vamos dizer assim infinitamente e conseguir colocar todos um ecossistema em volta para ele te ajudar com as suas principais tarefas legal agora
uma coisa que você deve estar perguntando aí é o seguinte Mas por que que no final das contas eu preciso do Apache Kafka tá o grande. EA grande motivação tá de tanto do Apache Kafka como de outros sistemas Mas falando especificamente o Apache Kafka é que é o seguinte hoje em dia tá quase todos os sistemas eles são orientados a evento da então se eu tô no e-commerce eu faço uma compra eu disse para um evento que essa compra foi efetuada se eu adicionei um e eu falo que o item foi adicionado no carrinho se
eu tiver usando o meu carro né o meu Tesla e não sei o que eu abrir a porta gerou um evento falando que a porta foi aberta se eu tiver na minha casa com todos aqueles dispositivos malucos e tal eu falo que a lâmpada foi ligado desligado a TV tá Às vezes eu quero monitorar as coisas né então eu tenho alarmes eu tenho sistemas de monitoramento e quando acontece alguma coisa um evento é disparado então se você perceber nos dias de hoje a gente está num mundo que entender esses eventos é é algo extremamente importante
mas não somente entender esses eventos tá o que a gente pode fazer com ele está muitos desses eventos no final das contas eles vão nos ajudar a Gerar dados históricos para que a gente consiga manipular tudo isso depois eu vou dar um e para você eu vou imaginar que a cada momento tá que eu vou executando uma transação de uma conta bancária por exemplo ele vai adicionando crédito débito é tudo que eu vou fazendo né eu abrir uma conta eu fechei uma conta eu criei um cartão de crédito eu fiz qualquer coisa desse tipo ele
gera um evento e seu armazenar todos esses eventos tá no banco de dados eu vou ter o histórico inteiro de tudo que aconteceu com esse usuário por exemplo tá E às vezes esses dados são super importantes para que eu consiga por exemplo seguir regras de compliance é que as empresas precisam Seguir para a parte de auditoria e tudo mais mas muitas vezes eu quero seguir e tem esses dados históricos tá para eu conseguir trabalhar com estatísticas fazer médias agrupar informações e tudo mais Então essas informações são extremamente importantes e esse é um grande diferencial ainda
do a praticar o Kiko a África faz um final das contas aí para você é pegar todos esses eventos que acontecem e que a gente manda para parte casca ele consegue salvar esses dados então a parte de cá fica no final das contas além dele manipular todas essas informações simplesmente ele consegue guardar essas informações para que a gente possa utilizá-las futuramente legal uma coisa que é interessante cima tá E que se você for dando uma olhada aqui em relação à parte do Apache Kafka essas principais informações iniciais aqui eu tirei exatamente do site para ficar
mais fácil de eu resumir tudo aqui para você tá mas a grande sacada aqui é o seguinte ele aguenta muita mas muita mas processar muito informação e ele trabalha com uma latência muito baixa tá você consegue latencias ali para baixo inclusive de dois mil e segundos ele é extremamente escalável você vai E conforme for explicando aqui para você você vai entender o porquê que ele consegue escalar a gente consegue guardar essas informações vamos dizer para sempre ou eu também posso colocar um período de retenção para que eu pego e somente sei lá informações dos últimos
dois meses e as anteriores ele vai jogando fora e você vai perceber que no formato de como ele foi desenhado você vai ver que esse camarada ele consegue possuir grande disponibilidade da e tem uma grande tolerância a falha por quê Porque da forma como ele é desenhado tá você tem cópias de todas essas informações espalhadas por diversos a gente vai falar com isso um pouquinho mais calmo uma coisa interessante também aí do Apache Kafka é todo o ecossistema que está em volta dele como assim que acontece o seguinte por padrão você e processar esses instrumentos
de dados ou seja as informações chegam você e você consegue processar você consegue inclusive pegar essa informação transformar-se em formação jogar de novo para dentro do casca você consegue pegar essa informação baseado nessa informação você consegue processar e tirar Dados importantes dessa informação para mandar para para outro sistema ou qualquer coisa desse tipo tá uma coisa que é super interessante é que você muitas vezes quer pegar informação de um lado e jogasse informação Pinha outro sistema mas você não quer ter que desenvolver todas essas integrações então a parte de cá fica ele possui uma forma
que você consegue conectar sistemas externos neles ok ele tem conectores que você consegue conectar e automaticamente ou a parte de casca ele começa a ler desses conectores e o mais legal é que você também tem conectores que servem para você pegar informação o Apache Kafka e jogar em outros sistemas de forma totalmente integrada praticamente sem você digitar nenhuma linha de código uma coisa interessante cima é que conectores dessa forma bibliotecas e um monte de coisa que vai te ajudar a trabalhar com casca existem de um monte na internet a empresa com frente que mantém praticamente
vamos dizer assim o carro casca é da praxe né mas uma empresa que trabalha especificamente com casca o pessoal que criou basicamente apesar do carro fica ser open-source assim presa ela contribuiu muito chamada de confluente e você vai ver que tem diversas bibliotecas que eles disseram que ajudam muito em todo esse processo uma coisa muito bacana também é o nível de ferramenta que você pode ter para você conseguir trabalhar com carro Wesley Quais são as empresas que usam casca é o seguinte se você entrar no site do Apache Kafka ele tem uma é mas eu
vou falar somente algumas aqui para vocês Netflix LinkedIn Uber Twitter do box Spotify PayPal e um monte de bancos tá estão utilizando essa solução você consegue utilizar o casca para aplicações menores com certeza também a grande sacada do casca é que você consegue utilizar ele bem para estruturas bem pequenas e Conforme você for crescendo ele consegue escalar vamos dizer infinitamente Então isso é muito bacana agora que eu terminei com essa explicação eu queria mostrar para você aqui a a ideia principal de como que o carro fica funciona Beleza então quê que acontece galera eu criei
aqui para ficar um pouco fácil de você conseguir entender a gente tem um camarada aqui chamado the producer Esse cara é qualquer sistema que vai produzir o dado Ou seja é o carro que abriu a porta é o icomercy que fez uma compra é um carrinho é Shopping o Mack adicionou o item pode ser qualquer coisa que aconteça que vai gerar que vai produzir o dado é o produto tá então esse dado no final das contas ele vai ser encaminhado aqui para o nosso Apache Kafka tá o mais como é que funciona o a praticar
o Apache Kafka informar ele funciona e o formato de um cluster ou seja você tem diversas máquinas rodando o Apache Kafka legal e esse cluster a gente chama é esse cluster não e cada máquina dessa a gente chama de broker legal então vamos pensar o seguinte o casca ele é um cluster em diversos Brothers legal e cada boca desse tem o seu próprio banco de dados legal então vamos maginar eu acabei de produzir um dado a gente mandou para o casca o casca vai jogar essa informação para alguns desses Brothers legal e a gente vai
ter um consumo o consumo é o sistema que tá interessado Oi tá me pegar essa informação que foi para o casca legal então vamos imaginar o seguinte eu fiz uma compra e gerou uma venda aí o que acontece a gente tem que gerar nota fiscal Então tem um teste vamos imaginar que a gente tem um sistema externo ou da área fiscal que vai ficar lendo ali o a parte de cá fica falando o seguinte Olha quando caiu uma venda me avisa então colocar em uma vendo o sistema fiscal vai ficar consumindo e vai processar e
enviar nota fiscal então dá para perceber que esse sistema que fica consumindo aqui ele fica consumindo para sempre ele é um worker tá por isso que eu coloquei aqui um e outro ou seja ele fica para sempre olhando o tempo inteiro o que tá vindo ali no casca para ele pegar e processar OK agora se você olhar aqui para cima a gente tem também um camarada chamado de Zouk apertar uso Keeper basicamente um sistema de service Discovery e ele consegue porque Extra vamos dizer assim é os brothers que o carro fica tá rodando legal E
lembrando que uso Keeper atualmente é o cara principal que você trabalha ali com casca mas a ideia deles é você poder substituir o uso Keeper para qualquer outro sistema semelhante a ideia do Sul Keeper é o seguinte a gente consegue gerenciar erros e fazer recuperação ou seja se o broker a cair ele consegue a redirecionar as coisas que o Blocker B por exemplo tá ou seja se a gente precisar adicionar um novo broker a uso Keeper vai lá e sobe esse broker faz esses broker se comunicarem e tudo mais se eu precisar trabalhar com autenticação
autorização o sistema precisa se conectar por exemplo ali independente terminado o tópico que a gente vai falar daqui a pouco a gente tem que ter essas autorizações ou seja uso Keeper ele gerencia tudo isso ou seja eu tenho o câncer do casca eu tenho um cluster de Zouk que fica gerenciando esse câncer do casca para garantir que tudo ali esteja em harmonia o mais bacana de tudo é que em geral tudo isso funciona de forma transparente ali para o desenvolvedor uma vez que o carro fica tá no ar Yusuke apertar no ar você não tem
que ficar se preocupando e ficar gerenciando esses camaradas de forma geral uso Keeper ele trata e cuida ali do seu clã casca de forma geral Beleza agora a gente vai para um dos conceitos principais quando a gente está falando no apaixonar legal e qual é esse conceito tá a gente vai falar sobre o primeiro o conceito aqui que é chamado de Top pics tá ou seja o que que é um tópico no final das contas um tópico ou um top o que que ele faz ele é como se fosse um cano tá que a gente
joga informação nesse camarada e essa informação ela fica armazenada ali no Apache Kafka Ou seja quando eu preciso produzir uma mensagem essa mensagem ela vai ser enviada para Ah tá a gente pode criar quantos tópicos a gente quiser ali no casca eu posso criar um tópico para produtos vendidos e eu posso criar um tópico para ticket de suporte e eu posso criar um tópico para a eventos que estão acontecendo no carro ou qualquer coisa desse tipo legal então o produto ser manda uma mensagem para o top esse top que tá ele vai gravar essas informações
no broker e eu tenho um consumo e o meu consumo ele vai ficar lendo esse tópico para que toda mensagem que chegue nesse camarada tá é esse cara vai poder processar e o mais legal é que eu posso ter diversos consumers tá lendo o mesmo tópico então por exemplo aqui eu mandei uma mensagem para esse tópico aqui legal e o que que aconteceu eu tenho dois sistemas totalmente diferentes lendo esse mesmo tópico seja eles vão conseguir pegar esses mesmos dados ou seja o carro ele permite que diz os temas totalmente separados que eu não tenho
nenhuma relação Leiam as informações de um mesmo Tokyo Legal ou seja vamos imaginar que esse tópico é como se fosse uma fila tá ou um local aonde você joga informação Então essa que a ideia de um tópico aí quando a gente está falando no no carro agora a gente vai ter que começar a prestar um pouquinho mais atenção nesse momento porque essas informações agora que eu vou te passar são muito importantes para que você conseguir entender direito como funciona esse estoque Tá então vamos gerar o seguinte pessoal e eu tenho aqui um tópico que eu
chamei de seios tá ou seja de vendas ou seja todas as vendas que estão acontecendo por exemplo no meu e comer se cair nesse meu tópico e o que que acontece mas o que que o casca acaba fazendo eles e para esse nosso tópico em partições Tá então vamos agir aqui cada partição tá fica é uma parte dos dados Então vamos maginar que eu mandei uma compra a né Comprei uma boneca foi para a partição comprei um carrinho foi para o parque São dois comprei ali um uma casa foi para o parque São três Então
essa que a ideia principal você vai entender o porquê que o carro fica trabalha com partições Tá mas lembre-se imagina que todas as vezes que você for criar um tópico você vai ter que escolher quantas partições você vai querer trabalhar você vai perceber que essas partições elas vão ajudar tá e dá um processo de leitura desse tópico muito mais rápido de forma paralela tá e você vai entender também que essas partições elas vão ajudar você conseguir escalar todo esse processo Porque essas partições elas não precisam ficar necessariamente no mesmo broker ou seja o meu clã
Você pode ter cinco máquinas e eu tenho a partição que tá na máquina a a parte são dois está na máquina cê EA paz são três tá na máquina e por exemplo tá então o grande ponto é que ele pega esse tópico a gente divide em partições a gente consegue escolher quantas partições agora foi imaginar o seguinte eu mandei uma mensagem aqui para o meu tópico e eu tenho três partições uma mensagem caiu aqui nesse minha partição número 1 Tá o que que aconteceu como que o casca Guarda essa informação quando a informação caia nesse
nessa parte são um essa partes e a cria diversos segmentos tá então a gente chama esse de segue-me então o que que acontece comecei mandar um monte de compra caiu aqui no segmento um depois ele já era um outro aqui vão sentimento dois é como se fossem diversos arquivos como se fosse um banco de dados inicias ali como se fosse um minha HD com o arquivo que fica sendo gerado grandão ali nesses camaradas agora o mais interessante é que é a partir desse segmento que a gente consegue determinar ali no casca inclusive o período de
retenção da nossa mensagem Como assim Wesley vamos imaginar que eu quero tá que toda mensagem que eu mande para o casca ela fica armazenada durante uma semana quando completar uma semana essa mensagem ela vai ser simplesmente excluída automaticamente tá por padrão tudo que você criar no casca a retenção padrão dele é de uma semana mas você consegue deixar uma retenção para sempre você consegue deixar uma retenção de um e por exemplo Tá então vamos agir aqui nesse segmento aqui a retenção acabou ficando que a gente escolheu para esse tópico de uma semana então quando aconteceu
uma semana ele vai jogar esse alimento fora porque ele já venceu vamos dizer assim tá agora o que você tem que entender é que o tópico de forma geral ele funciona como se fosse um grande log ou seja as informações são adicionadas nele uma atrás da outra tá por isso que a gente tem aqui ó top blog então o que que acontece vamos assinar nessa parte são nossa é de seios né os nosso tópico de seios quando eu mando uma mensagem e essa mensagem vai para essa parte são o que que acontece a mensagem caiu
uma caixinha a gente a nossa caixinha aqui de off-set Tá o que que acontece tá na caixinha mensagem Fica guardado aqui chega uma próximo chega uma próxima chega uma próxima e aqui vai tá então essa que a ideia principal e sempre essas mensagens elas ficam um Filler adas tá dentro de uma mesma partição tá então se eu tiver por exemplo duas partições eu vou ter duas vezes 0 1 2 3 tá esse esse aqui acontece por partição uma coisa que é muito louca é o seguinte eu vou me imaginar que eu tenho um sistema a
e eu tenho um sistema b e os dois estão lendo esse tópico tão lendo essa parte são Mas pode ser que o sistema Ah tá lendo o índice aqui né off-set três e aplicação B plaquinha mais adiantada lendo o offset aqui sete tá então isso aqui é totalmente capaz porque o casca ele consegue gerenciar e te guardar lhe com ele sabendo que um qual pedaço um qual índice que cada consumir né que cada consumidor tá sem se consumir por exemplo caído alho voltar quem sabe da onde o cara parou tá ele fica guardando todas essas
informações legal então basicamente quando a gente está falando um tópico ele é um log tá as informações vão sendo guardadas nele e a gente tem diversas partições legal então a gente tem nesse caso aqui ó três partições então aqui eu tenho 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5 6 por exemplo aqui para gente legal agora o que que acontece cada off-set desse né Cada registre o que a gente Guarda ele tem uma espécie de uma anatomia vamos dizer aqui tá Ou seja a
estrutura de uma mensagem que fica guardada ali no casca tá por padrão o que que acontece essa mensagem ela fica guardada no seguinte formato ela tem aqui a parte de renders que você pode adicionar ou não Tá então esses regras basicamente são os metadados você pode as informações que vão ajudar o seu sistema a processar ou tomar alguma decisão lógica ou qualquer coisa É nessa informação que eu posso pegar sei lá qualquer dado e conseguir guardar ali que vai ser útil para mim então basicamente eles são metadados eu não sou obrigado a passar nenhuma informação
uma outra coisa que o casca tem e que é muito interessante e que pouca gente às vezes acaba utilizando às vezes nem sabe que existe é essa parte de que tá basicamente essa aqui ela é uma chave tá que ela vai ajudar a gente manter o contexto de uma mensagem por exemplo vamos imaginar tá que eu tenho ali o meu tópico de vendas legal e toda vez que acontece uma venda eu mando uma mensagem para lá mas o que que acontece vamos imaginar que quando sai uma venda existe uma mensagem específica que eu quero mandar
que vá e somente para o sistema de entrega para o sistema de chipping então eu coloco ali na aqui por exemplo shipping então o que que acontece quando os sistemas começam a ler as mensagens eu posso falar o seguinte Olha eu quero ler essas mensagens mas eu só vou processar as mensagens que tem aqui chamada chip tá será que foram qualquer outra coisa eu posso descartar essa leitura legal Ou seja eu consigo criar contextos tá baseados nessa aqui então eu consigo informar aqui que eu quiser ali para eu ter um controle ali no meu sistema
você é obrigado a colocar uma aqui não também você pode deixar sem nenhuma aqui e aí simplesmente sistema vai receber as mensagens e você vai ler as mensagens e você não tem essa aqui aí para trabalhar legal o que mais acontece aqui também você tem um velho tá o velho basicamente openload o conteúdo da sua mensagem e aqui você pode colocar o seu Jackson você consegue colocar um arquivo texto basicamente tudo escrito um texto você consegue trabalhar com protocol buffers por exemplo ou seja sua mensagem vai ficar gravada no outro formato você consegue trabalhar de
diversas formas basicamente aí eu conteúdo da mensagem que você tá enviando legal e finalmente se você não se tá um timestamp tá o casca ele vai gerar viu times tempo para você ou seja toda vez que se refere foi gerado o que que vai acontecer ele vai gerado e o time estanque para gente legal agora Existem algumas coisas bem interessantes sobre tópicos também que podem ajudar a gente demais na hora que a gente tá trabalhando com carro vamos vaginal seguinte eu tenho um sistema que ele fica registrando por exemplo a mudança de temperatura no tempo
por exemplo você já tem um sistema lá que fica ali de meteorologia E cada vez que mudou e ele joga para o carro então vou imaginar aqui em Orlando tá 25° passou dez minutos está 26° passou 20 minutos tá por exemplo 4° ou qualquer coisa desse tipo ou seja um casca ele vai ficar gravando obviamente todas essas mensagens que foram enviadas Tá mas muitas vezes eu quero por exemplo pegar a temperatura atual E para isso eu não quero ficar lendo o tempo todo todas essas mensagens para conseguir pegar um resumo do que tá acontecendo Então
nesse caso você pode ter algo que a gente chama de log compactado ali no casca o log compactado ele consegue pegar o resumo da posição atual da posição do valor atual que tá basicamente ali a sua mensagem Como assim olha só que interessante vamos gerar que eu tenho toc dos seios e aqui eu tenho um registro 1 2 3 4 5 6 7 8 é tão fácil agora eu tenho aqui por exemplo a legal então vamos imaginar aqui na aqui a é Orlando aqui B é Pirapora e aqui se em Indaiatuba Então ele recebe uma
mensagem falando que o valor da ti agora x tá 25° Orlando depois 26° em Orlando daí ele recebe ali em Pirapora falando que tá 7° depois de recebe Indaiatuba falando que está 25° depois ele atualiza a versão de Orlando depois ele atualiza Pirapora depois ele atualiza linda Atuba duas vezes e assim vai Legal ou seja essas informações ficam gravadas mas eu consigo ter acesso ao lado de compactado que ele vai falar o seguinte Olha só parado o seguinte É nesse momento tá é em Orlando tá a 7 graus por exemplo nesse momento aqui em Pirapora
tá 10 graus nesse momento aqui em Indaiatuba tá tantos graus ele fala da onde que veio a mensagem tá o seja qual é o índice da mensagem que ele leu para pegar essa informação Ou seja eu tenho histórico mas eu consigo pegar de forma resumida Quais são os valores atuais e isso só é possível porque a gente passou uma aqui legal ou seja todas as vezes que eu mandar por exemplo do meu sistema de previsão eu falo que aqui é o nome da cidade e eu passo o valor ali pra gente e daí nesse o
nosso caso a gente consegue pegar um valor aqui totalmente resumido aqui para gente legal pessoal seguinte tá para o nosso vídeo não ficar muito grande o que que eu vou fazer eu vou gravar uma continuação desse vídeo para gente começar a falar sobre a distribuição de partições para você entender um pouco melhor legal então no nosso próximo vídeo a gente vai pegar toda essa história de Distribuição escalabilidade e todas essas é para gente falar do Apache Kafka Espero que você tenha gostado dessa introdução saiba que vai ser uma série de vídeos aqui a gente vai
gerar uma playlist para que você consiga e começar do zero tá com a parte de cá fica mais tendo os fundamentos aí bem sólido beleza Um grande abraço para você e te vejo no nosso próximo vídeo aí não é [Música]