Olá pessoal, boa noite. Nessa aula eu vou mostrar para vocês duas ferramentas para você conseguir gerenciar o seu cluster de cálculo. A primeira é uma gráfica open source e a segunda é uma não gráfica via terminal. Para quem vem acompanhando as aulas desde o início deve ter percebido que eu uso muito essa ferramenta chamada khq. E aí ela tem instalação tanto via docker, você pode usar java.jar direto, ela é em java, tá? Você pode instalar no kubernetes usando o Helm Chart. Se você digitar a khq aqui no Google, tem uma documentação bem completa sobre como utilizar, etc. Por exemplo, aqui. Cadê, cadê? Aqui, ó. Você pode instalar ela via Docker, que é o que a gente está fazendo agora. Você pode usar Helm para instalar no Kubernetes, por exemplo, se quiser. E aí tem também a instalação em standalone, então se você quiser instalar usando o java.jar, é só baixar o jar, o RelatedPage, você pode simplesmente baixar o arquivo já e conseguir utilizar também, está na versão 0.24 atualmente é uma ferramenta que é super completa tem muita coisa e ela é open então assim, inclusive ela tem também uma coisa que eu uso é autenticação com LDAP, então você consegue federar o seu login para o seu AD, criando grupos, etc. Isso é bem legal. Se você olhar aqui, cadê? Aqui, LDAP. Então você consegue, por exemplo, federar todo o seu login para o LDAP, o webdap, criar grupos, inclusive, para dizer... Aqui, ó. Criar grupos para quem vai conseguir ler o tópico, quem vai conseguir criar mensagens, etc. É bem legal. Eu uso bastante essa integração com o webdap, tenho achado bem interessante. Tem outras integrações, por exemplo, com o GitHub SSO, né? Se quiser fazer uma autenticação federada para o GitHub também. Além disso, ela não trabalha só com Kafka Broker. Você consegue ver, por exemplo, o Schema REST. Então, nas aulas passadas eu mostrei para você que ela tem uma integração com o sistema REST. Ela tem uma integração aqui com a CL. Aqui a gente não tem a CL, mas você poderia... Qualquer tipo de autorização que você tem no seu carro. Aquele grupo pode ler desse tópico ou deletar esse tópico. Aquele consumer group pode consumir esse tópico. Isso são as séries, e você consegue configurar isso aqui e olhar como é que está organizado. Além dos padrões que é o Consumer Group, você consegue por exemplo ver qual que é o nome do consumidor, se ele está estável ou se ele não está rodando. Nesse caso aqui está empty. Não está rodando. Porque não tem nenhum membro. Então modifica empty. Amarelo. Se você abrir aqui por exemplo. Clicar nessa lupa. Você vai ver. Quem são os membros. Então olha só que legal. Ele está me dizendo que para esse Consumer Group aqui, eu tenho esse client, que é, lembra? Consumer Group é aquele grupo de consumidores que tem aquelas aplicações rodando, fazendo algum trabalho. Aqui eu tenho esse client ID e eu tenho o ID do client, que é o ID gerado automaticamente com esse ID. Ele me dá o IP e me dá qual o tópico que esse membro aqui está assinado. Então nesse caso ele está assinado nesse tópico, nessas partições aqui que vai de 0 a 11. Ele me mostra também se tem algum ACL, então nesse caso eu não tenho nenhuma CL configurada nesse broker e aí ele me mostra também se eu tivesse, aqui não tem nenhuma mensagem, mas se eu tivesse mensagem ele mostraria qual é o lag, qual é o último offset que foi lido por esse consumer group se eu voltar aqui, deixa eu ver aqui, esse aqui também não tem nada, mas ele tinha também um membro que já consumiu mensagem em algum momento, mas agora não tem mais nada. Bom, tem uma outra propriedade que o LiveTail, que eu, para ser sincero, uso bem pouco, mas eu acho interessante. Você pode escolher um tópico e aí ele vai acompanhar em tempo real as mensagens chegando no tópico. Você dá um play aqui e toda mensagem que chegar vai aparecer aqui pra você em real time. Bem legal. O que eu mais uso aqui, mais para, é esse tópico. Então aqui ele mostra pra você todos os tópicos que você tem no seu broker, no seu cluster na verdade. Você pode, por padrão, ele esconde os tópicos internos. Se eu mostrar todos aqui, você vai ver que os tópicos internos começam com esse underscore. E aí ele, por padrão, esconde, porque, a maioria das vezes ele não faz sentido colocar esses tópicos, mas se você quiser ver, você pode clicar em show all topics ou fazer uma pesquisa específica de um tópico, ele tem algumas informações básicas como o nome, quantidade de mensagens, o tamanho, o último registro, quando chegou o último registro foi uma hora atrás, a quantidade de partições e algumas informações de réplica. Então, qual meu factor é 1 e qual meu insync. Aí, se você voltar uma aula, que eu estava falando sobre configuração de produção, etc., você vai ver que a gente tem um replica factor que geralmente é diferente do insync. Então, quando você tem um cluster com 3 brokers, geralmente seu replica factor é 3, e seu insync é 2. Fica aqui quando o produtor vai mandar mensagem, o Então, se eu subir um membro agora, um consumer group, consumer group não, se eu subir um consumidor dentro desse consumer group, ele não vai receber uma mensagem porque não tem nenhum lag, o lag está zerado. Bom, outra coisa interessante do AKHQ, essa engrenagem aqui, você consegue mudar bastante coisa dentro do seu top. Então, coisas que você teria que fazer num CLI, que dá para fazer, mas é bem mais complexo, você pode fazer via interface gráfica. E olha que legal, esse default config aqui, ele me mostra que a configuração, ela veio lá do broker. ele me mostra que a configuração veio lá do broker. Certo? Então, todo mundo que tem default aqui, na verdade todos, né? São configurações que vieram do broker. Deixa eu mudar aqui para compact. Vou dar um update aqui. Pronto. Então, olha só. Eu resolvi mudar o meu cleanup policy para compact, que é um dos tipos de policy para limpar o dado do top. E aí ele está me dizendo aqui que isso não vem mais do default, isso foi dinamicamente configurado. Então, é bem legal porque eu consigo saber o que vem do broker e o que foi mudado pelo usuário, pelo produtor, etc. Aqui eu tenho as partições e aqui é bem interessante porque aqui é um caso básico, eu não tenho... Eu tenho um broker com uma partição, então não dá para ver muita coisa mas num caso real de produção você vai ter vários brokers, vamos colocar 3 aqui e topo com 100 200 partições facilmente e aqui o que ele vai mostrar para você ele vai mostrar que a partição 0 o que é o líder? o líder é o broker 1 então significa que toda mensagem que é produzida na partição 0 ela cai sempre o broker 1. Então significa que toda mensagem que é produzida na partição 0, ela cai sempre do broker 1. Assim como a consumida também, ela vai do broker 1, que é o líder daquela partição. E aí ele está replicando para o próprio broker 1, que só tem ele, mas isso aqui ele vai de contra com o replica factor. Então se você tivesse três brokers com replica factory dois por exemplo, ele vai te mostrar aqui só dois brokers que está replicando aquela mensagem então ele mostra aqui exatamente para quem vai replicar a mensagem, então se tiver replica factory que afecta o 3, 3 broke vai mostrar todo mundo aqui. Aqui mostra o offset, primeiro é 0, último é 11 e o tamanho. Consumir grupo já falei, quem está consumindo, configuração também já. E aqui é a parte de logs em relação ao tamanho de mensagem, etc. Log parece que é log de mensagem, parece que é log de sistema, mas na verdade log para o Kafka é a mensagem em si. Ok, então... Para fechar aqui, eu tenho a parte de nós, então você consegue ver quantos nós tem no seu cluster e o legal aqui que ele mostra quem que é o líder no espaço eu tenho um, então o líder é ele mesmo e ele mostra como é que está o balanceamento de partições isso aqui é bem interessante porque vocês vão ver que no caso real você vai ter milhares de partições não vai ser milhares como eu falei e essas partições vão estar distribuídas entre os brokers então vai ter 30% num, 30% no outro, 33% no outro etc. E por algum motivo você vê um mau balanceamento, tipo um broker está com 90% outro está com 10, você já consegue ver nessa interface gráfica e tomar alguma ação. Talvez você não configurou de forma correta a partição, você colocou chave e está caindo só em uma partição, você está com o que a gente chama de hot partition, então você definiu uma chave ruim e está caindo sempre só em uma partição. Então esse tipo de visualização é muito legal para você saber como está o balançamento do seu cluster. Porque, no final das contas, você tem um mau balançamento de partição, tem um nó que está recebendo toda rajada e os outros estão recebendo muito menos. Aí, quando você clicar nessa lupa, você também consegue ver as configs do nó. Então aqui, todas as configurações que você poderia colocar estão aqui. Vamos pegar uma que é o compression type. Olha só. Se vocês assistiram a aula anterior que eu falei de configuração de broker em produção, eu falei sobre usar o LZ4. Aqui ele está com o tipo producer. O que é isso? Significa que ele vai deixar o produtor escolher qual é o tipo de compressão. Eu já falei sobre isso, vou só repetir, mas depende do time que você tem, do tamanho do time, talvez não seja uma boa escolha porque muitos times podem nem saber essa propriedade e aí você não consegue garantir uma compressão. Então geralmente eu já venho aqui, coloco logo uma LZ4, todo mundo quer usar LZ4. aqui, todas as configs que você poderia colocar estão aqui. Você pode alterar por aqui e dar uma olhada e etc. Beleza? Bem legal. Bom, para fechar, o AKHQ é uma ferramenta que você consegue não olhar um cluster só. Você consegue ver vários clusters. Então, aqui eu coloquei um cluster que eu chamei Kafka, mas você poderia ter uma KHQ que vai mostrar o cluster de Dev, de Prod, de Omol, ou você pode separar, por exemplo, por cluster on-premises e cluster cloud e assim por diante. Então, existem essas estratégias que as empresas usam. Mas eu quero deixar claro para vocês que essa ferramenta consegue mostrar para vocês todos os clusters que vocês tiverem. 50 clusters ela consegue mostrar os 50 clusters para vocês aqui. Bom, de forma bem rápida eu quero mostrar o CLI também. Quando você baixa o Kafka, então aqui eu fui lá na página da Apache e baixei o Kafka, última versão aqui nesse vídeo, né. Tem diversos .sh aqui dentro desse download de Kafka que eu fiz e o que acontece? Vamos pegar um desses SH que é o de tópicos. SH Kafka Topics. Se você digitar SH Kafka Topics ele vai te mostrar uma lista de propriedades que você pode configurar em relação a tópico. Então, por exemplo, eu poderia conectar no meu broker, usando o Bootstrap Server, localhost 9092. Já está rodando o meu broker aqui. Então, estou usando esse list. E aí eu posso passar o nome do tópico também se eu quiser ou só simplesmente não passar nada ele vai listar todos os tópicos que eu tenho. Certo? Então listou todos os tópicos. Fez a mesma coisa que o khq fez só que de forma no terminal tá. Aí você pode também colocar aqui topic e, por exemplo, botar um regex aqui. Opa! Então, é uma ferramenta bem legal. Eu, pessoalmente, uso o CLI quando eu vou criar pipelines e etc. E preciso fazer algum trabalho um pouco mais de automação, vamos dizer assim. Ou quando eu estou em um servidor Linux e não tenho acesso a KHQ e preciso ver alguma informação rápida de um tópico, etc. Tem outros aqui, se você olhar. Então, por exemplo, você tem o Kafka Delete Records, como só se você simplesmente chamar o SH, você vai ver que ele te dá o real pedido, como é que você pode usar,ar, qual que é o offset, etc. Cadê, cadê? Tem um que eu acho bem interessante, que é o Kafka... Cadê? Kafka Console Producer, né? Acho bem legal porque, às vezes, você não tem uma aplicação pronta ainda então você não quer criar uma aplicação para poder fazer um teste se o seu broker está funcionando então você usa esse console Kafka Producer onde ele vai te pedir o Bootstrap Server o nome do tópico, a mensagem que vai produzir a mensagem para você. É um produtor, assim como você também tem o consumidor. Então, o que eu quero dizer é assim, o Barra Bean do Kafka tem diversas ferramentas que vão te ajudar a gerenciar também o cluster de Kafka. Se você olhar tudo isso aqui, a maioria das coisas você encontra no AKHQ. O AKHQ é muito mais simples de utilizar do que a CLI, obviamente. Mas, de novo, um complementa o outro. Então, acho que é bom que você conheça os dois, porque quando você está em um ambiente que não tem AKHQ, ou você precisa de alguma automação, você tem que recorrer ao CLI. O Kafka já te entrega vários CLIs. Existem outras ferramentas. Várias outras na verdade. Interface gráficas do Kafka. Vou só citar algumas aqui. Por exemplo a Confluent. Ela tem um Control Center. É uma ferramenta paga. Bem legal também. Já utilize uma ferramenta paga. Bem legal também. Já utilizei, mas é paga. Então, o AKHQ, de novo, sendo bem sincero, ele atende muito bem. Até hoje, tudo que eu precisei, eu consegui encontrar no AKHQ. Existe a ferramenta Conductor também. Que também é paga. Eu dei preferência aqui para mostrar uma ferramenta open source que você já pode começar a utilizar. Conductor é bem legal também, mas é pago. Então, aí fica à vontade para você escolher o que atende mais a sua necessidade. É isso pessoal, agradeço e até a próxima.